Session Object
let userId = session.getUserId()
- This function does not do any database call.
let jwtPayload = session.getJWTPayload()
- This function does not do any database call.
updateJWTPayload
function: API Reference
let newData = {"key": "value"};
await session.updateJWTPayload(newData)
- This function will change the current access token
- This function requires a database call each time it's called.
let sessionData = await session.getSessionData()
- This function requires a database call each time it's called.
updateSessionData
function: API Reference
let newData = {"key": "value"};
await session.updateSessionData(newData)
- This function overwrites the current session data stored for this session.
- This function requires a database call each time it's called.
session.revokeSession()
- This function deletes the session from the database and clears relevant auth cookies
- If using blacklisting, this will immediately invalidate the JWT access token.
Example
const supertokens = require("supertokens-node");
app.post("/test", supertokens.middleware(), async (req, res) => {
let session = req.session
let userId = session.getUserId();
let sessionData = await session.getSessionData();
let newSessionData = {...sessionData, newKey: "newVal"};
await session.updateSessionData(newSessionData);
let payloadData = session.getJWTPayload();
let newPayload = {...payloadData, newKey: "newVal"};
await session.updateJWTPayload(newPayload);
await session.revokeSession();
res.send("");
});
import * as supertokens from "supertokens-node";
app.post("/test", supertokens.middleware(), async (req: supertokens.Type.SessionRequest, res) => {
let session = req.session
let userId = session.getUserId();
let sessionData = await session.getSessionData();
let newSessionData = {...sessionData, newKey: "newVal"};
await session.updateSessionData(newSessionData);
let payloadData = session.getJWTPayload();
let newPayload = {...payloadData, newKey: "newVal"};
await session.updateJWTPayload(newPayload);
await session.revokeSession();
res.send("");
});