fix(apollo): logout on stale Auth0 token errors #2887
+13
-1
@@ -18,10 +18,22 @@ const cache = new InMemoryCache({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const STALE_AUTH_ERRORS = new Set([
|
||||||
|
'login_required',
|
||||||
|
'consent_required',
|
||||||
|
'interaction_required',
|
||||||
|
'invalid_grant',
|
||||||
|
'missing_refresh_token',
|
||||||
|
])
|
||||||
|
|
||||||
const getToken = async (options: GetTokenSilentlyOptions) => {
|
const getToken = async (options: GetTokenSilentlyOptions) => {
|
||||||
const nuxtApp = useNuxtApp()
|
const nuxtApp = useNuxtApp()
|
||||||
const auth0: Auth0VueClient = nuxtApp.$auth0 as Auth0VueClient
|
const auth0: Auth0VueClient = nuxtApp.$auth0 as Auth0VueClient
|
||||||
return await auth0.getAccessTokenSilently(options).catch(() => {
|
return await auth0.getAccessTokenSilently(options).catch((err) => {
|
||||||
|
const code = err && typeof err === 'object' && 'error' in err ? (err as { error?: string }).error : undefined
|
||||||
|
if (code && STALE_AUTH_ERRORS.has(code)) {
|
||||||
|
auth0.logout({ openUrl: false }).catch(() => {})
|
||||||
|
}
|
||||||
return undefined
|
return undefined
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user