oauth2-server/repository-interface-refresh-token.md
Andrew Millington f42c821a18
Fix documentation error
Changed documentation as the expiry date is for the refresh token instead of the access token
2018-12-06 23:25:50 +00:00

1.7 KiB

layout title permalink
default RefreshTokenRepositoryInterface documentation /refresh-token-repository-interface/

Refresh Token Repository Interface

getNewRefreshToken() : RefreshTokenEntityInterface

This method should return an implementation of \League\OAuth2\Server\Entities\RefreshTokenEntityInterface. You can use the following traits to help you implement the required methods from that interface:

  • League\OAuth2\Server\Entities\Traits\RefreshTokenTrait
  • League\OAuth2\Server\Entities\Traits\EntityTrait

persistNewRefreshToken() : void

When a new refresh token is created this method will be called. You don't have to do anything here but for auditing you might want to.

The refresh token entity passed in has a number of methods you can call which contain data worth saving to a database:

  • getIdentifier() : string this is randomly generated unique identifier (of 80+ characters in length) for the refresh token.
  • getExpiryDateTime() : \DateTime the expiry date and time of the refresh token.
  • getAccessToken()->getIdentifier() : string the linked access token's identifier.

JWT access tokens contain an expiry date and so will be rejected automatically when used. You can safely clean up expired access tokens from your database.

revokeRefreshToken() : void

This method is called when a refresh token is used to reissue an access token. The original refresh token is revoked a new refresh token is issued.

isRefreshTokenRevoked() : boolean

This method is called when an refresh token is used to issue a new access token. Return true if the refresh token has been manually revoked before it expired. If the token is still valid return false.