MDL-59510 core_oauth2: add autorefresh mode to oauth2\client
authorJake Dallimore <jake@moodle.com>
Wed, 16 Sep 2020 07:11:42 +0000 (15:11 +0800)
committerJake Dallimore <jake@moodle.com>
Mon, 5 Oct 2020 01:19:29 +0000 (09:19 +0800)
commit01320374271f886b18848b2b681cd81483d017dc
treec3e77beebc23981a6105c1d5ac3e59a956cc1ea3
parent6502c13b4f61472826dceb882b4ec622dc3c7ce1
MDL-59510 core_oauth2: add autorefresh mode to oauth2\client

Changes:
- The client can now be instantiated with the new mode enabled.
- A user refresh token will be stored if returned as part of the
authorization_code grant but only if the user is authenticated and only
if the mode is enabled.
- If the mode permits it, attempt to exchange a stored refresh token for
a new access token during login checks, allowing access to continue
across sessions without the need to re-grant consent every time.
- Purge all refresh tokens for a given user, issuer and scope on client
log out. This makes sure logout persists across logins.
lib/classes/oauth2/api.php
lib/classes/oauth2/client.php
lib/moodlelib.php