Search code examples
javascriptjwtnetlify

Netlify Identity / GoTrue-js do user JWT expire?


Using https://github.com/netlify/gotrue-js to interface with netlify's authentication service (called "Identity") how frequently is it necessary to do the following:

const user = auth.currentUser();
const jwt = user.jwt();
jwt
  .then(response => console.log("This is a JWT token", response))
  .catch(error => {
    console.log("Error fetching JWT token", error);
    throw error;
  });

Will the resulting JWT be valid forever? For the duration of the user's logged-in session? Or does it expire after a given amount of time?


Solution

  • Generally JWTs contain can (optionally) contain an exp (expiration) claim, that contains the time when it will expire.

    I don't have experience with GoTrue, but according to their documentation you can configure the expiration, and it's set to a default value of 3600 seconds.

    As the library also works with refresh tokens, you won't have to re-authenticate again after the token expires but use the refresh token to get a new access token.