Skip to content

Commit 0f1e9d9

Browse files
committed
Update based on PR review
1 parent ba9608b commit 0f1e9d9

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed

recipe/session/accessToken.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,41 +178,55 @@ func ValidateAccessTokenStructure(payload map[string]interface{}, version int) e
178178
err := errors.New("Access token does not contain all the information. Maybe the structure has changed?")
179179

180180
if version >= 3 {
181+
supertokens.LogDebugMessage("ValidateAccessTokenStructure: Access token is using version >= 3")
181182
if _, ok := payload["sessionHandle"].(string); !ok {
183+
supertokens.LogDebugMessage("ValidateAccessTokenStructure: sessionHandle not found in JWT payload")
182184
return err
183185
}
184186
if _, ok := payload["sub"].(string); !ok {
187+
supertokens.LogDebugMessage("ValidateAccessTokenStructure: sub claim not found in JWT payload")
185188
return err
186189
}
187190
if _, ok := payload["refreshTokenHash1"].(string); !ok {
191+
supertokens.LogDebugMessage("ValidateAccessTokenStructure: refreshTokenHash1 not found in JWT payload")
188192
return err
189193
}
190194
if _, ok := payload["exp"].(float64); !ok {
195+
supertokens.LogDebugMessage("ValidateAccessTokenStructure: exp claim not found in JWT payload")
191196
return err
192197
}
193198
if _, ok := payload["iat"].(float64); !ok {
199+
supertokens.LogDebugMessage("ValidateAccessTokenStructure: iat claim not found in JWT payload")
194200
return err
195201
}
196202
} else {
203+
supertokens.LogDebugMessage("ValidateAccessTokenStructure: Access token is using version < 3")
197204
if _, ok := payload["sessionHandle"].(string); !ok {
205+
supertokens.LogDebugMessage("ValidateAccessTokenStructure: sessionHandle not found in JWT payload")
198206
return err
199207
}
200208
if _, ok := payload["userId"].(string); !ok {
209+
supertokens.LogDebugMessage("ValidateAccessTokenStructure: userId not found in JWT payload")
201210
return err
202211
}
203212
if _, ok := payload["refreshTokenHash1"].(string); !ok {
213+
supertokens.LogDebugMessage("ValidateAccessTokenStructure: refreshTokenHash1 not found in JWT payload")
204214
return err
205215
}
206216
if payload["userData"] == nil {
217+
supertokens.LogDebugMessage("ValidateAccessTokenStructure: userData not found in JWT payload")
207218
return err
208219
}
209220
if _, ok := payload["userData"].(map[string]interface{}); !ok {
221+
supertokens.LogDebugMessage("ValidateAccessTokenStructure: userData is invalid in JWT payload")
210222
return err
211223
}
212224
if _, ok := payload["expiryTime"].(float64); !ok {
225+
supertokens.LogDebugMessage("ValidateAccessTokenStructure: expiryTime not found in JWT payload")
213226
return err
214227
}
215228
if _, ok := payload["timeCreated"].(float64); !ok {
229+
supertokens.LogDebugMessage("ValidateAccessTokenStructure: timeCreated not found in JWT payload")
216230
return err
217231
}
218232
}

recipe/session/recipeImplementation.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ func MakeRecipeImplementation(querier supertokens.Querier, config sessmodels.Typ
176176

177177
refreshSession := func(refreshToken string, antiCsrfToken *string, disableAntiCsrf bool, userContext supertokens.UserContext) (sessmodels.SessionContainer, error) {
178178
if disableAntiCsrf != true && config.AntiCsrf == AntiCSRF_VIA_CUSTOM_HEADER {
179+
supertokens.LogDebugMessage("refreshSession: Since the anti-csrf mode is VIA_CUSTOM_HEADER getSession can't check the CSRF token. Please either use VIA_TOKEN or set antiCsrfCheck to false")
179180
return nil, defaultErrors.New("Since the anti-csrf mode is VIA_CUSTOM_HEADER getSession can't check the CSRF token. Please either use VIA_TOKEN or set antiCsrfCheck to false")
180181
}
181182

@@ -189,6 +190,7 @@ func MakeRecipeImplementation(querier supertokens.Querier, config sessmodels.Typ
189190

190191
responseToken, parseErr := ParseJWTWithoutSignatureVerification(response.AccessToken.Token)
191192
if parseErr != nil {
193+
supertokens.LogDebugMessage("refreshSession: Failed to parse access token")
192194
return nil, err
193195
}
194196

recipe/session/sessionFunctions.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,17 +236,20 @@ func refreshSessionHelper(config sessmodels.TypeNormalisedInput, querier superto
236236

237237
response, err := querier.SendPostRequest("/recipe/session/refresh", requestBody)
238238
if err != nil {
239+
supertokens.LogDebugMessage("refreshSessionHelper: Call to /recipe/session/refresh API failed")
239240
return sessmodels.CreateOrRefreshAPIResponse{}, err
240241
}
241242
if response["status"] == "OK" {
242243
delete(response, "status")
243244
responseByte, err := json.Marshal(response)
244245
if err != nil {
246+
supertokens.LogDebugMessage("refreshSessionHelper: Could not parse response from /recipe/session/refresh API")
245247
return sessmodels.CreateOrRefreshAPIResponse{}, err
246248
}
247249
var result sessmodels.CreateOrRefreshAPIResponse
248250
err = json.Unmarshal(responseByte, &result)
249251
if err != nil {
252+
supertokens.LogDebugMessage("refreshSessionHelper: Could not decode response from /recipe/session/refresh API")
250253
return sessmodels.CreateOrRefreshAPIResponse{}, err
251254
}
252255
return result, nil
@@ -379,18 +382,21 @@ func regenerateAccessTokenHelper(querier supertokens.Querier, newAccessTokenPayl
379382
"userDataInJWT": newAccessTokenPayload,
380383
})
381384
if err != nil {
385+
supertokens.LogDebugMessage("regenerateAccessTokenHelper: Call to /recipe/session/regenerate failed")
382386
return nil, err
383387
}
384388
if response["status"].(string) == errors.UnauthorizedErrorStr {
385389
return nil, nil
386390
}
387391
responseByte, err := json.Marshal(response)
388392
if err != nil {
393+
supertokens.LogDebugMessage("regenerateAccessTokenHelper: Failed to parse response from core")
389394
return nil, err
390395
}
391396
var resp sessmodels.RegenerateAccessTokenResponse
392397
err = json.Unmarshal(responseByte, &resp)
393398
if err != nil {
399+
supertokens.LogDebugMessage("regenerateAccessTokenHelper: Failed to decode response from core")
394400
return nil, err
395401
}
396402
return &resp, nil

0 commit comments

Comments
 (0)