WIP BOD-14 changes.
This commit is contained in:
@@ -1,38 +0,0 @@
|
||||
import { auth } from "../firebase/firebase.utils";
|
||||
|
||||
//used to ensure that there is always a fresh token.
|
||||
function minutesSince(date) {
|
||||
const now = new Date();
|
||||
const millisecondsSince = now - date;
|
||||
// Divide milliseconds by 1000 to get seconds
|
||||
// Divide seconds by 60 to get minutes
|
||||
return millisecondsSince / 1000 / 60;
|
||||
}
|
||||
|
||||
// Pass a different argument number to set a sooner/longer refresh time
|
||||
export function shouldRefreshToken(minutesBeforeShouldRefresh = 45) {
|
||||
const stringifiedRefreshTime = window.sessionStorage.getItem(
|
||||
`lastTokenRefreshTime`
|
||||
);
|
||||
const lastRefreshAt = new Date(stringifiedRefreshTime);
|
||||
const aboutToExpire =
|
||||
minutesSince(lastRefreshAt) >= minutesBeforeShouldRefresh;
|
||||
return aboutToExpire;
|
||||
}
|
||||
|
||||
|
||||
export async function refreshToken() {
|
||||
try {
|
||||
if (auth.user) {
|
||||
const idToken = await auth().currentUser.getIdToken(
|
||||
/* force refresh */ true
|
||||
);
|
||||
const now = new Date();
|
||||
window.localStorage.setItem(`lastTokenRefreshTime`, now);
|
||||
localStorage.setItem("token", idToken);
|
||||
console.log("Token refreshed.");
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user