Refresh Expired Tokens
Features::refreshOauthTokens()Socialstream::refreshesTokensForProviderUsing('github', function (ConnectedAccount $account) {
$response = Http::asForm()->post(...);
return new RefreshedCredentials(
token: $response['access_token'],
refreshToken: $response['refresh_token'],
expiry: now()->addSeconds($response['expires_in']),
);
});<?php
namespace App\RefreshTokenProviders;
use GuzzleHttp\RequestOptions;
use JoelButcher\Socialstream\Concerns\RefreshesOauth2Tokens;
use JoelButcher\Socialstream\Contracts\Oauth2RefreshResolver;
use SocialiteProviders\Reddit\Provider as RedditProvider;
class RedditOauth2RefreshResolver extends RedditProvider implements Oauth2RefreshResolver
{
use RefreshesOauth2Tokens;
public function __construct()
{
parent::__construct(
request: request(),
clientId: config('services.reddit.client_id'),
clientSecret: config('services.reddit.client_secret'),
redirectUrl: '',
);
$this->guzzle = [
RequestOptions::AUTH => [$this->clientId, $this->clientSecret],
];
}
}Last updated