2

我正在使用 yii2-authclient 库将 OpenId Connect 实现到我的 Yii2 应用程序中。我可以毫无问题地登录并用代码交换令牌。我遵循了网络上的大多数代码示例,并设置了一个successCallback 函数,一旦用户成功登录就会调用该函数。它看起来像这样:

public function successCallback(ClientInterface $client) 
{
    $attributes = $client->getUserAttributes();
}

此代码被调用,但调用getUserAttributes()会导致以下错误:

异常 – yii\authclient\InvalidResponseException
请求失败,代码:400,消息:
{"error":"invalid_request","error_description":"Token not provided"}

id 服务器上的日志显示一个空白的客户端和用户,错误为invalid_token.

我仔细查看了我提出的请求,我看到了一个access_token元素。任何想法可能是什么问题?如有必要,我可以提供更多信息。

4

1 回答 1

0

我想到了。问题是 yii2-authclient 库将令牌作为 GET 参数发送,而 ID 服务器期望它作为 POST 参数。我升级了 yii2-authclient 库并解决了这个问题,因为最近的更改将参数发送为 POST 而不是 GET。

于 2018-06-07T20:51:45.490 回答