Changing Apigility's auth token expiry
By default, the OAuth 2 token that is generated in an Apigility app expires in 1 hour. Upon expiry, the client is expected to use the refresh token to get a new access token.
You can see this when you authenticate via a POST to /oauth as you get this response back:
{ "access_token": "3812aaea7640a2567c66e21e2587450821103552", "expires_in": 3600, "token_type": "Bearer", "scope": null, "refresh_token": "72d5df08c971526a4ba7c83ec2a7b92d82d9715b" }
If you need longer than 1 hour, then simply add this top level configuration setting:
'zf-oauth2' => [ 'access_lifetime' => 7200, ],
The access_lifetime key controls the expiry time and is in seconds, so in this case I’ve set it to 2 hours.
We have needed to make this change ourselves this very week. I have written a CLI php script to generate a client to be used in server to server comms and the client_credentials grant type. I wanted the token to 'never expire' so decided to set the expiration date well in the future. Is there a better way of doing this do you think?
For refresh token, you have key
'refresh_token_lifetime' => 12345
Let's write that more verbose, because it's not obvious from my previous comment:
Thanks Ivan!