Skip to main content
Developer

Refresh Token#

View as Markdown

Structure#

The Refresh Token⁠ (opens in a new tab) contains claims as shown in the table below. Such claims are either added by Keycloak⁠ (opens in a new tab) or the result of customization made by BankID.

See session handling for the life-time of a refresh token. The purpose of Refresh Tokens is to enhance security by keeping the life-time of Access Tokens shorter. An expired Access Token can easily be replaced with a new Access Token (without any user interaction) via a Refresh Token that was issued along with the most recent Access Token, but that was issued with a longer life-time than the Access Token itself.

We support signed Refresh Tokens in JWT format. The below table shows claims in the payload part of the JWT. Claims contained in the JWT header are not shown.

ClaimExampleDescription
typRefreshToken type. Always Refresh.
audtinfoAudience. Always client_id.
azpoidc_testclientAuthorized party. Equals client_id.
exp1510498063Expiration time in Epoch time. Corresponds to a forward session window after iat
iat1510497763Issuing time in Epoch time equal to auth_time for new sessions. Is otherwise set at each session refresh.
isshttps://auth.bankid.no/auth/realms/prod⁠ (opens in a new tab)Issuer of the token. Always the OIDC Provider base URL.
jti7f22fd6a-3d46-4d5a-ae56-6de3c53e1873Token identifier⁠ (opens in a new tab). A unique identifier for the token. Can be used to prevent replay attacks.
nonce (deprecated)7f22fd6a-3d46-4d5a-ae56-6de3c53e1873This claim was deprecated in API Version 4. Will be removed in the future.
sube8c523ff-52a2-42e2-a7a5-f1d0fbb76204Subject Identifier. GUID that uniquely identifies the end user across the different IDPs.

Was this page helpful?