如何从Microsoft Graph API获取刷新令牌

时间:2019-07-19 13:31:42

标签: php azure-ad-graph-api

我很难获得刷新令牌。由于某种原因,似乎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'
]);

从重定向脚本中,我得到一个代码,但没有刷新令牌。我不应该两者兼得,还是不了解其工作原理。

1 个答案:

答案 0 :(得分:0)

您正在使用OAuth 2.0 code grant flow

在此流程中,您首先将向授权端点发出请求。授权端点将向您返回一个authorization_code。然后,您将向令牌端点发出带有authorization_code的POST请求,以获取访问令牌和刷新令牌。

enter image description here

我在教程中检查了OAuth 2.0 Client - Authorization Code Grant,该示例包含获取访问令牌和刷新令牌的逻辑。您可以参考相关代码。

enter image description here