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

35 lines
1.7 KiB
Markdown

---
layout: default
title: RefreshTokenRepositoryInterface documentation
permalink: /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`.