我在用
oauth2-microsoft
为我的应用开发“使用Microsoft登录”工具。我正在成功地验证和接收令牌,但随后从示例代码中收到一个错误。
我正在使用下面的示例代码,并在“urlResourceOwnerDetails”字段中尝试了各种URL组合,包括将其留空。
$provider = new \Stevenmaguire\OAuth2\Client\Provider\Microsoft([
'clientId' => '<redacted>',
'clientSecret' => '<redacted>',
'redirectUri' => 'http://localhost/test.php',
'urlAuthorize' => 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize',
'urlAccessToken' => 'https://login.microsoftonline.com/common/oauth2/v2.0/token',
'urlResourceOwnerDetails' => 'https://graph.microsoft.com/v1.0/me/drive'
]);
$options = [
'scope' => ['wl.basic', 'wl.signin']
];
之后是身份验证和令牌生成。
然后这一行抛出错误:
$user = $provider->getResourceOwner($token);
我可以肯定的是,一个令牌正在生成
echo $token
看看吧。
上面的代码应该创建一个
$user
对象,该对象包含有关登录用户的详细信息。但是,它会产生以下错误:
如果
'urlResourceOwnerDetails'
即将
https://graph.microsoft.com/v1.0/me/drive
我得到:
League\OAuth2\Client\Provider\Exception\IdentityProviderException: Access token is empty
如果
“urlResourceOwnerDetails”
即将
https://outlook.office.com/api/v2.0/me
我得到:
UnexpectedValueException: Invalid response received from Authorization Server. Expected JSON.
如果
“urlResourceOwnerDetails”
我得到的是空的:
GuzzleHttp\Exception\RequestException: cURL error 3: malformed (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
有什么想法吗?