From 890a7f3ed4cf4e258159dbe500cd8be82c56afba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20M=C3=B6hlmann?= Date: Mon, 20 Mar 2023 11:06:32 +0200 Subject: [PATCH] feat: GetUserinfo helper method for IDTokenClaims (#337) --- pkg/oidc/token.go | 11 +++++++++++ pkg/oidc/token_test.go | 13 +++++++++++++ 2 files changed, 24 insertions(+) diff --git a/pkg/oidc/token.go b/pkg/oidc/token.go index b017023..127db97 100644 --- a/pkg/oidc/token.go +++ b/pkg/oidc/token.go @@ -159,6 +159,17 @@ func (t *IDTokenClaims) SetUserInfo(i *UserInfo) { t.Address = i.Address } +func (t *IDTokenClaims) GetUserInfo() *UserInfo { + return &UserInfo{ + Subject: t.Subject, + UserInfoProfile: t.UserInfoProfile, + UserInfoEmail: t.UserInfoEmail, + UserInfoPhone: t.UserInfoPhone, + Address: t.Address, + Claims: t.Claims, + } +} + func NewIDTokenClaims(issuer, subject string, audience []string, expiration, authTime time.Time, nonce string, acr string, amr []string, clientID string, skew time.Duration) *IDTokenClaims { audience = AppendClientIDToAudience(clientID, audience) return &IDTokenClaims{ diff --git a/pkg/oidc/token_test.go b/pkg/oidc/token_test.go index 0d9874e..8dcfc7e 100644 --- a/pkg/oidc/token_test.go +++ b/pkg/oidc/token_test.go @@ -225,3 +225,16 @@ func TestNewIDTokenClaims(t *testing.T) { assert.Equal(t, want, got) } + +func TestIDTokenClaims_GetUserInfo(t *testing.T) { + want := &UserInfo{ + Subject: idTokenData.Subject, + UserInfoProfile: idTokenData.UserInfoProfile, + UserInfoEmail: idTokenData.UserInfoEmail, + UserInfoPhone: idTokenData.UserInfoPhone, + Address: idTokenData.Address, + Claims: idTokenData.Claims, + } + got := idTokenData.GetUserInfo() + assert.Equal(t, want, got) +}