@vyro-x/react-auth
Advanced tools
Comparing version 1.5.7 to 1.5.8
@@ -36,12 +36,11 @@ "use strict"; | ||
try { | ||
await (0, refresh_1.refresh)(); | ||
} | ||
catch (err) { | ||
console.warn('failed to refresh auth session', err); | ||
if (err === refresh_1.SessionErrorCode.Expired || err === refresh_1.SessionErrorCode.Revoked) { | ||
const result = await (0, refresh_1.refresh)(); | ||
if (!!result.errorCode && [refresh_1.SessionErrorCode.Expired, refresh_1.SessionErrorCode.Revoked].includes(result.errorCode)) { | ||
(0, service_1.logout)({ | ||
post_logout_callback_url: window.location.href, | ||
}); | ||
return; | ||
} | ||
} | ||
catch (err) { | ||
console.warn('failed to refresh auth session', err); | ||
// Fail silently when a session cannot be refreshed | ||
@@ -48,0 +47,0 @@ // Subsequent calls to privileged resources will fail and redirect to login |
@@ -0,1 +1,5 @@ | ||
export type SessionRefreshResult = { | ||
refreshed: boolean; | ||
errorCode?: SessionErrorCode; | ||
}; | ||
export declare enum SessionErrorCode { | ||
@@ -6,2 +10,2 @@ Revoked = "session-revoked", | ||
} | ||
export declare const refresh: () => Promise<void>; | ||
export declare const refresh: () => Promise<SessionRefreshResult>; |
@@ -20,3 +20,6 @@ "use strict"; | ||
if (!refreshToken) { | ||
throw new Error(SessionErrorCode.Expired); | ||
return { | ||
refreshed: false, | ||
errorCode: SessionErrorCode.Expired, | ||
}; | ||
} | ||
@@ -34,2 +37,5 @@ try { | ||
(0, tokens_1.setRefreshToken)(refresh_token); | ||
return { | ||
refreshed: true, | ||
}; | ||
} | ||
@@ -40,7 +46,13 @@ catch (err) { | ||
err?.response?.data?.code === SessionErrorCode.Expired) { | ||
throw new Error(err.response.data.code); | ||
return { | ||
refreshed: false, | ||
errorCode: err?.response?.data?.code, | ||
}; | ||
} | ||
if (err?.response?.data?.code === SessionErrorCode.NotVerfied) { | ||
// Fail silently if a session has not yet been verified | ||
return; | ||
return { | ||
refreshed: false, | ||
errorCode: null, | ||
}; | ||
} | ||
@@ -47,0 +59,0 @@ throw err; |
{ | ||
"name": "@vyro-x/react-auth", | ||
"description": "Client authentication", | ||
"version": "1.5.7", | ||
"version": "1.5.8", | ||
"private": false, | ||
@@ -6,0 +6,0 @@ "main": "lib/index.js", |
34696
743