thephpleague / oauth2-client

Easy integration with OAuth 2.0 service providers.
http://oauth2-client.thephpleague.com
MIT License
3.63k stars 751 forks source link

Support setting refreshToken #994

Closed grimmdude closed 1 year ago

grimmdude commented 1 year ago

In the cases where the refresh token isn't included in the response when using it to refresh an access token, it's often necessary to persist the original refresh token for later use. When this happens it's convenient to store the refresh token in the AccessToken object as it was originally.

However, because AccessToken::$refreshToken is a protected property it's not possible to assign this value directly. Implementing AccessToken::setRefreshToken() allows the refresh token to be set and stored along with the AccessToken object.

The workaround I've found is to serialize the AccessToken object to JSON, add the refresh token, then reinstantiate a new AccessToken object. It would be great if this wasn't necessary.

Building the functionality directly into the library to automatically carry over the refresh token would be great (as suggested in #658), but I'm not sure if that behavior would apply to all cases. It might cause confusion if it was intentionally omitted from the response because it's no longer valid.

Related to https://github.com/thephpleague/oauth2-client/issues/658

codecov[bot] commented 1 year ago

Codecov Report

Merging #994 (49777e3) into master (164ccb0) will not change coverage. The diff coverage is 100.00%.

Impacted file tree graph

@@             Coverage Diff             @@
##              master      #994   +/-   ##
===========================================
  Coverage     100.00%   100.00%           
- Complexity       190       191    +1     
===========================================
  Files             20        20           
  Lines            514       516    +2     
===========================================
+ Hits             514       516    +2     
Impacted Files Coverage Δ
src/Token/AccessToken.php 100.00% <100.00%> (ø)
Seldaek commented 8 months ago

Heya @ramsey @shadowhand could I bother you for a release with this PR? A few commits are missing from 2.7.0 https://github.com/thephpleague/oauth2-client/compare/2.7.0...master - thanks 🙏🏻