A Session object contains the JWT token, a refreshToken, and user details. It is recommended to store the token and refresh token (e.g., in Web Storage) and check for expiry on startup.
To restore a session from stored tokens:
const authtoken = window.localStorage.getItem("nkauthtoken");
const refreshtoken = window.localStorage.getItem("nkrefreshtoken");
let session = nakamajs.Session.restore(authtoken, refreshtoken);
To refresh an expired session:
if (session.isexpired(unixTimeInFuture / 1000)) {
try {
session = await client.sessionRefresh(session);
} catch (e) {
console.info("Session can no longer be refreshed. Must reauthenticate!");
}
}
// Assume we've stored the auth token in browser Web Storage.
const authtoken = window.localStorage.getItem("nkauthtoken");
const refreshtoken = window.localStorage.getItem("nkrefreshtoken");
let session = nakamajs.Session.restore(authtoken, refreshtoken);
// Check whether a session is close to expiry.
const unixTimeInFuture = Date.now() + 8.64e+7; // one day from now
if (session.isexpired(unixTimeInFuture / 1000)) {
try
{
session = await client.sessionRefresh(session);
}
catch (e)
{
console.info("Session can no longer be refreshed. Must reauthenticate!");
}
}