我很难获得刷新令牌。由于某种原因,似乎Graph API无法识别我的offline_access范围。这是我的PHP代码:
$oauthClient = new \League\OAuth2\Client\Provider\GenericProvider([
'clientId' => "id",
'clientSecret' => "secret",
'redirectUri' => "redirect",
'urlAuthorize' => "https://login.microsoftonline.com/xxxx/oauth2/v2.0/authorize",
'urlAccessToken' => "https://login.microsoftonline.com/xxxx/oauth2/v2.0/token",
'urlResourceOwnerDetails' => '',
'scopes' => 'MailboxSettings.ReadWrite offline_access'
]);
从重定向脚本中,我得到一个代码,但没有刷新令牌。我不应该两者兼得,还是不了解其工作原理。
答案 0 :(得分:0)
您正在使用OAuth 2.0 code grant flow。
在此流程中,您首先将向授权端点发出请求。授权端点将向您返回一个authorization_code。然后,您将向令牌端点发出带有authorization_code的POST请求,以获取访问令牌和刷新令牌。
我在教程中检查了OAuth 2.0 Client - Authorization Code Grant,该示例包含获取访问令牌和刷新令牌的逻辑。您可以参考相关代码。