Skip to main content

Reading roles in the frontend

If a session exists on the frontend, we can read the role by getting information from the session:

Step 1: This is how to use the session context in a component:#

import React from "react";import { useSessionContext } from 'supertokens-auth-react/recipe/session';
class Dashboard extends React.Component {
      render() {            let {userId, jwtPayload} = useSessionContext();
            // we use the key "role" here since that's what we            // used while setting the payload in the backend.             let role = jwtPayload.role;
            if (role === "admin") {                  // TODO..            } else {                  // TODO..            }      }}

Step 2: Wrap the above component with EmailPasswordAuth (which provides the context)#

import { EmailPasswordAuth } from 'supertokens-auth-react/recipe/emailpassword';
render() {     return (           <EmailPasswordAuth>                  <Dashboard />           </EmailPasswordAuth>     );}

You can pass requireAuth={false} to EmailPasswordAuth if you want the <Dashboard /> component to load even if there is no session. In this case, you would need to check if a session exists in the <Dashboard /> component.