2017-04-24 10 views
1

私は、最良の方法で物事を考えているかどうかを知るのに苦労しています。私は、ユーザーが何らかのタイプのミドルウェア(BasicAuthまたはJWT)によって認証された後に、ユーザーが何をすべきか知りたいと思っています。ユーザーを文脈または他の場所に保管しますか?

関連するすべてのユーザーフィールドをコンテキストとして値として保存する必要がありますか?コンテキストにそれらを格納する場合、それらを取り出すために特別な関数が必要ですか? (ユーザー定義のcontextKey型を使用して型を取り出し、適切な構造体に戻します)

私はそれがうまくいくと思いますが、それが最も合理的な方法だと思います。

+1

カスタム入力キーのコンテキストでユーザー情報を格納することは、完全に合理的に思えます。 –

+0

あなたはどのようにユーザーを引き抜くことが分かりますか?関数呼び出しによって? – deltaskelta

+1

はい。 'withUser(ctx、user)'や 'userFromCtx(ctx)'のような関数を使用します。 –

答えて

1

はい、context.Contextは、とりわけリクエスト範囲変数などのためのものです。 (リクエストごとにリクエストごとにアクセスすることを意味するデータを格納するのには適していないので、何らかのセッションメカニズムを考慮する必要があります)

context.Value(key interface{}) interface{}インターフェイス関数は、値をコンテキストから取り出す方法です。

関連する問題