Web Client Session Management
This guide shows how to effectively implement session validation on the client side, with our Web SDKs.
The session management article gives an overview of the session validation in Descope.
If you're looking to set up backend validation, check out our Backend Validation page.
Client SDK
Install SDK
Import and initialize SDK
Parameters:
baseUrl
: Custom domain that must be configured to manage token response in cookies. This makes sure every request to our service is through your custom domain, preventing accidental domain blockages.baseStaticUrl
: Custom domain to override the base URL that is used to fetch static files.
Sending session token to application server
If you are using Client SDK or using Descope Flows, then your application client must send the session token to you application server.
The getSessionToken()
function gets the sessionToken
from local storage via JS which you can then include in your request.
Note
NextAuth does not use Descope's Client SDK but does use JWTs for session management.
At any time, your application client should only send the session token to your application and the application server should validate the session token using Descope Backend SDK.
Logout using Client SDK
If you are integrating using the Descope Client SDK, then you must use the Client SDK to logout. If you are using Descope Flows with React SDK, refer to the Quick Start for details. If you are Descope Client SDK without flows, then refer to the sample code below for logout.
Note
If you're using NextAuth and Next.js, you'll need to also make sure that you're handling the logout using the federated IdP revocation endpoint. You can see this working in a sample app here.
Checking token expiration
One important step in validating a session token is to ensure that the token has not expired. Descope SDKs allows you to check if the session is expired using the isJwtExpired
function.
Roles
The role of a user is determined from their session token in your application. You can extract this information using Descope's SDKs, specifically the getJwtRoles
function.
Permissions
Permissions granted to a user can also be extracted from the session token using the getJwtPermissions
function from Descope's SDKs.