Slim3 WebApp에서 Microsoft Graph ...로 작업하고있는 리그/oauth 클라이언트를 사용 중입니다. 주어진 새로 고침 토큰을 사용하여 새 토큰을 성공적으로 요청할 수 없습니다. ...Microsoft Graph 새로 고침 토큰 요청이 실패 함 ... AADSTS70000
이 리그/OAuth는 클라이언트 내 디 컨테이너 :
$container['oauthprovider'] = function()
{
$provider = new \League\OAuth2\Client\Provider\GenericProvider(
[
'clientId' => getenv('ENV_CLIENT_ID'),
'clientSecret' => getenv('ENV_CLIENT_SECRET'),
'redirectUri' => getenv('ENV_REDIRECT_URL'),
'urlAuthorize' => getenv('ENV_AUTHORIZE_URL'),
'urlAccessToken' => getenv('ENV_URL_ACCESS_TOKEN'),
'urlResourceOwnerDetails' => '',
'scopes' => 'offline_access user.read people.read user.read.all openid mail.send'
]
);
return $provider;
};
작품 잘 - 내 Slim3-경로에서 리디렉션 후 내가 가진 모든 토큰, refresh_token도 등
$provider = $this -> oauthprovider;
$CODE = filter_var($_GET['code'], FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$accessToken = $provider -> getAccessToken('authorization_code',
['code' => $CODE]
);
...
$existingAccessToken = $accessToken -> getToken();
$refreshToken = $accessToken -> getRefreshToken();
$expiresIn = $accessToken -> getExpires();
$expired = ($accessToken -> hasExpired() ? true : false);
$client = $this -> guzzzle;
...
$newAccessToken = $provider -> getAccessToken('refresh_token', [
'refresh_token' => $accessToken -> getRefreshToken(),
'grant_type' => 'refresh_token'
]);
을하지만 내 목표는 아니다 - 나는 만료 된 수명에 도달하여 토큰을 새로 고쳐야 할 : - 같은 Slim3-경로에 -이 시점에서 내 토큰을 다시 시도하면210 그리고 잘 작동 - 1시간 - 다른 Slim3-경로에서 :
$accessToken = unserialize($session -> get('serialized_token'));
$refreshToken = unserialize($session -> get('serialized_refresh_token'));
$code = $session -> get('code');
$provider = $this -> oauthprovider;
$client = $this -> guzzzle;
...
$req = $client -> request('POST',
'https://login.windows.net/common/oauth2/token', [
'form_params' => [
'accept' => 'application/json',
'grant_type'=> 'refresh_token',
'client_id' => getenv('ENV_CLIENT_ID'),
'client_secret' => getenv('ENV_CLIENT_SECRET'),
'refresh_token' => (string) $refreshToken,
'redirect_uri' => getenv('ENV_REDIRECT_URL')
]
]);
답변서 :
Client error:
POST https://login.windows.net/common/oauth2/token
resulted in a400 Bad Request
response: {"error":"invalid_grant","error_description":"AADSTS70000: Transmission data parser failure: Refresh Token is malformed (truncated...)
새로 고침 토큰 정확히 내가 초기 요청에 도착 것과 동일합니다.
누구나 oauth-client/guzzle/Microsoft Graph에서 경험 한 사람 - 내/어디서 오류가 있습니까? 당신이 V2 엔드 포인트를 사용하고 있기 때문에
욕설을 사용하지 마십시오. –