@@ -20,10 +20,11 @@ type VerifyFunc func(ctx context.Context, token string) (*oidc.IDToken, error)
20func CreateTokenToSessionFunc(verify VerifyFunc) TokenToSessionFunc {
20func CreateTokenToSessionFunc(verify VerifyFunc) TokenToSessionFunc {
21 return func(ctx context.Context, token string) (*sessionsapi.SessionState, error) {
21 return func(ctx context.Context, token string) (*sessionsapi.SessionState, error) {
22 var claims struct {
22 var claims struct {
23− Subject string `json:"sub"`
23+ Subject string `json:"sub"`
24− Email string `json:"email"`
24+ Email string `json:"email"`
25− Verified *bool `json:"email_verified"`
25+ Verified *bool `json:"email_verified"`
26− PreferredUsername string `json:"preferred_username"`
26+ PreferredUsername string `json:"preferred_username"`
27+ Groups []string `json:"groups"`
29 idToken, err := verify(ctx, token)
30 idToken, err := verify(ctx, token)
@@ -46,6 +47,7 @@ func CreateTokenToSessionFunc(verify VerifyFunc) TokenToSessionFunc {
46 newSession := &sessionsapi.SessionState{
47 newSession := &sessionsapi.SessionState{
47 Email: claims.Email,
48 Email: claims.Email,
48 User: claims.Subject,
49 User: claims.Subject,
50+ Groups: claims.Groups,
49 PreferredUsername: claims.PreferredUsername,
51 PreferredUsername: claims.PreferredUsername,
50 AccessToken: token,
52 AccessToken: token,
51 IDToken: token,
53 IDToken: token,