@@ -94,7 +94,7 @@ var defaultIdentityProviderResponseParser = func(response IdentityProviderRespon
94
94
return nil , fmt .Errorf ("response is nil" )
95
95
}
96
96
switch response .Type () {
97
- case typeAuthResult :
97
+ case ResponseTypeAuthResult :
98
98
authResult := response .AuthResult ()
99
99
if authResult == nil {
100
100
return nil , fmt .Errorf ("auth result is nil" )
@@ -104,25 +104,34 @@ var defaultIdentityProviderResponseParser = func(response IdentityProviderRespon
104
104
username = authResult .IDToken .Oid
105
105
password = rawToken
106
106
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 ()
111
116
}
112
117
113
118
claims := struct {
114
119
jwt.RegisteredClaims
115
120
Oid string `json:"oid"`
116
121
}{}
117
122
118
- _ , err := jwt .ParseWithClaims (accessToken . Token , claims , nil )
123
+ _ , err := jwt .ParseWithClaims (token , claims , nil )
119
124
if err != nil {
120
125
return nil , fmt .Errorf ("failed to parse jwt token: %w" , err )
121
126
}
122
- rawToken = accessToken . Token
127
+ rawToken = token
123
128
username = claims .Oid
124
129
password = rawToken
125
- expiresOn = accessToken .ExpiresOn .UTC ()
130
+
131
+ if expiresOn .IsZero () {
132
+ expiresOn = claims .ExpiresAt .Time
133
+ }
134
+
126
135
default :
127
136
return nil , fmt .Errorf ("unknown response type: %s" , response .Type ())
128
137
}
0 commit comments