killian.s
07/19/2022, 11:28 PMjavascript
Session.init({
override: {
functions: (originalImplementation) => {
return {
...originalImplementation,
createNewSession: async function (input) {
let userId = input.userId;
let roles = await UserRoles.getRolesForUser(userId);
input.accessTokenPayload = {
...input.accessTokenPayload,
roles,
};
return originalImplementation.createNewSession(input);
},
};
},
},
}),
Frontend:
javascript
import SuperTokens from "supertokens-react-native";
import useAppStore from "../zustand/auth-store";
async function checkForSession() {
if (await SuperTokens.doesSessionExist()) {
const userId = await SuperTokens.getUserId();
console.log("UserId: " + userId);
const roles = await SuperTokens.getAccessTokenPayloadSecurely();
console.log(roles);
useAppStore.setState({
isAuthenticated: true,
userId: userId,
});
} else {
useAppStore.setState({
isAuthenticated: false,
userId: null,
});
}
}
export default checkForSession;
Output:
javascript
UserId: 8cba27de-db0c-43ea-9d76-0ac6a44d7a38
UserId: 8cba27de-db0c-43ea-9d76-0ac6a44d7a38
Object {}
Object {}
Object in this case is the output of
javascript
console.log(roles);