Skip to content

Commit 90ea172

Browse files
committed
add raw token in the idp response as well
1 parent e86aae9 commit 90ea172

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

token_manager.go

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ var defaultIdentityProviderResponseParser = func(response IdentityProviderRespon
9494
return nil, fmt.Errorf("response is nil")
9595
}
9696
switch response.Type() {
97-
case typeAuthResult:
97+
case ResponseTypeAuthResult:
9898
authResult := response.AuthResult()
9999
if authResult == nil {
100100
return nil, fmt.Errorf("auth result is nil")
@@ -104,25 +104,34 @@ var defaultIdentityProviderResponseParser = func(response IdentityProviderRespon
104104
username = authResult.IDToken.Oid
105105
password = rawToken
106106
expiresOn = authResult.ExpiresOn.UTC()
107-
case typeAccessToken:
108-
accessToken := response.AccessToken()
109-
if accessToken == nil {
110-
return nil, fmt.Errorf("access token is nil")
107+
case ResponseTypeRawToken, ResponseTypeAccessToken:
108+
token := response.RawToken()
109+
if response.Type() == ResponseTypeAccessToken {
110+
accessToken := response.AccessToken()
111+
if accessToken == nil {
112+
return nil, fmt.Errorf("access token is nil")
113+
}
114+
token = accessToken.Token
115+
expiresOn = accessToken.ExpiresOn.UTC()
111116
}
112117

113118
claims := struct {
114119
jwt.RegisteredClaims
115120
Oid string `json:"oid"`
116121
}{}
117122

118-
_, err := jwt.ParseWithClaims(accessToken.Token, claims, nil)
123+
_, err := jwt.ParseWithClaims(token, claims, nil)
119124
if err != nil {
120125
return nil, fmt.Errorf("failed to parse jwt token: %w", err)
121126
}
122-
rawToken = accessToken.Token
127+
rawToken = token
123128
username = claims.Oid
124129
password = rawToken
125-
expiresOn = accessToken.ExpiresOn.UTC()
130+
131+
if expiresOn.IsZero() {
132+
expiresOn = claims.ExpiresAt.Time
133+
}
134+
126135
default:
127136
return nil, fmt.Errorf("unknown response type: %s", response.Type())
128137
}

0 commit comments

Comments
 (0)