diff --git a/src/OAuth2/AbstractProvider.php b/src/OAuth2/AbstractProvider.php index abc001e..ee39acf 100644 --- a/src/OAuth2/AbstractProvider.php +++ b/src/OAuth2/AbstractProvider.php @@ -66,6 +66,26 @@ public function user() ->setApprovedScopes($this->parseApprovedScopes($response)); } + /** + * Refresh a user's access token with a refresh token. + * + * @param string $refreshToken + * @return \SocialiteProviders\Manager\OAuth2\Token + */ + public function refreshToken($refreshToken) + { + $response = $this->getRefreshTokenResponse($refreshToken); + + $token = new Token( + $this->parseAccessToken($response), + $this->parseRefreshToken($response), + $this->parseExpiresIn($response), + $this->parseApprovedScopes($response) + ); + + return $token->setAccessTokenResponseBody($response); + } + /** * Get the access token from the token response body. * diff --git a/src/OAuth2/Token.php b/src/OAuth2/Token.php new file mode 100644 index 0000000..58457ae --- /dev/null +++ b/src/OAuth2/Token.php @@ -0,0 +1,30 @@ +accessTokenResponseBody = $accessTokenResponseBody; + + return $this; + } +}