Line data Source code
1 : package auth
2 :
3 : import "context"
4 :
5 : // Key は認証クレームを context に入れる際のキーです。
6 : type Key struct{}
7 :
8 : // Claims は認証済みユーザーのクレーム情報です。
9 : type Claims struct {
10 : UID string
11 : Email string
12 : }
13 :
14 : // With はクレームを context に詰めて返します。
15 2 : func With(ctx context.Context, c Claims) context.Context {
16 2 : return context.WithValue(ctx, Key{}, c)
17 2 : }
18 :
19 : // From は context からクレームを取り出します。
20 1 : func From(ctx context.Context) (Claims, bool) {
21 1 : v, ok := ctx.Value(Key{}).(Claims)
22 1 : return v, ok
23 1 : }
|