id
, created_at
, expires_at
, idle_expires_at
, clients_id
, device
information, such as ASN
, IP
, and User_agent
, and for browser-based flows, session_id
. This object is populated by refresh token exchange flows.event.refresh_token
object to review the last_exchange_at
property and evaluate risks associated with the current transactions. You can also combine the event.refresh_token
object with other event objects, such as the event.authentication
.
You can then use the api.refreshToken
object to either set refresh token expiry dates or revoke the refresh token.
To learn more about these objects, review:
srrt
).
api.refreshToken.revoke(reason)
method, ensure that the event.refresh_token object exists.srrt
event code indicating a refresh token was revoked.
If the refresh token is bound to a previously authenticated session, the log will include a reference to the authenticated session in the session_id
attribute.
api.refreshToken.setExpiresAt(absolute)
and api.refreshToken.setIdleExpiresAt(idle)
methods allow to define the expiration of a refresh token, before its issuance, or modify an existing refresh token expiration during a refresh token exchange flow.The api.refreshToken.setExpiresAt(absolute)
and the api.refreshToken.setIdleExpiresAt(idle)
methods will convert non-expiring refresh tokens to expiring refresh tokens using the defaults Refresh Token expirations settings as maximum values.The api.refreshToken.setIdleExpiresAt(idle)
method sets the inactivity timeout for refresh tokens. If the method is not called in every successful exchange, the inactivity timeout will be overwritten using the refresh token lifetime application settings.session_id
) property with the appropriate value. Refresh tokens issued before this date contain this property with a null
value.
Refresh tokens issued before the release of the post-login API method api.refreshToken.revoke(reason)
will not contain event.refresh_token.device
information.
Non-expiring refresh tokens or refresh tokens that have not been exchanged will not contain the property event.refresh_token.last_exchanged_at
.
For security reasons, inactivity and absolute timeouts cannot be set above the application refresh token settings defined in the refresh token expirations. If you attempt to set a date above the expiration settings, the API methods will update up to the refresh token expirations and log a warning event (w
) in the tenant logs.
api.refreshToken.revoke(reason)
method and the event objects.
event.authentication.ImpossibleTravel.code
is equal to the impossible_travel_from_last_login property
. If true
, the Action calls the api.refreshToken.revoke()
to:
event.refresh_token.device.initial_ip
and event.request.ip
to ensure a refresh token transaction stays with the same IP address for its duration. In this scenario, any IP change is considered a risk, and a new refresh token is required.
event.refresh_token.device.initial_ip
and the event.request.ip
properties. The Action determines if the transaction IP address has changed. If true
, the Action calls the api.refreshToken.revoke()
to:
403
response access_denied
errorInvalid IP change
”request.asn
and event.refresh_token.device.initial_asn
properties to monitor for ASN changes instead of IP changes.
api.refreshToken.setExpiresAt(absolute)
and api.refreshToken.setIdleExpiresAt(idle)
methods.
refresh_token_timeout
metadata from the Organization to set the expiration time of the refresh token.
current_time
plus organization_refresh_token_lifetime
event.refresh_token.created_at
plus organization_refresh_token_lifetime
current_time
plus the refresh_token_idle_timeout
. Note that we are changing the timeout for both newly issued tokens and existing ones during refresh token exchange.