|
60 | 60 | TokenTransferMethod, |
61 | 61 | validate_and_normalise_user_input, |
62 | 62 | ) |
| 63 | +from .cookie_and_header import clear_session_from_all_token_transfer_methods |
63 | 64 |
|
64 | 65 |
|
65 | 66 | class SessionRecipe(RecipeModule): |
@@ -235,13 +236,22 @@ async def handle_error( |
235 | 236 |
|
236 | 237 | if isinstance(err, UnauthorisedError): |
237 | 238 | log_debug_message("errorHandler: returning UNAUTHORISED") |
| 239 | + if err.clear_tokens: |
| 240 | + log_debug_message("Clearing tokens because of UNAUTHORISED response") |
| 241 | + clear_session_from_all_token_transfer_methods( |
| 242 | + response, self, request, user_context |
| 243 | + ) |
238 | 244 | return await self.config.error_handlers.on_unauthorised( |
239 | | - self, err.clear_tokens, request, str(err), response, user_context |
| 245 | + request, str(err), response |
240 | 246 | ) |
241 | 247 | if isinstance(err, TokenTheftError): |
242 | 248 | log_debug_message("errorHandler: returning TOKEN_THEFT_DETECTED") |
| 249 | + log_debug_message("Clearing tokens because of TOKEN_THEFT_DETECTED response") |
| 250 | + clear_session_from_all_token_transfer_methods( |
| 251 | + response, self, request, user_context |
| 252 | + ) |
243 | 253 | return await self.config.error_handlers.on_token_theft_detected( |
244 | | - self, request, err.session_handle, err.user_id, response, user_context |
| 254 | + request, err.session_handle, err.user_id, response |
245 | 255 | ) |
246 | 256 | if isinstance(err, InvalidClaimsError): |
247 | 257 | log_debug_message("errorHandler: returning INVALID_CLAIMS") |
|
0 commit comments