我正在使用yii2-authclient库将OpenId连接到我的Yii2应用程序中。我可以登录并交换代码作为一个没有问题的令牌。我遵循了web上的大多数代码示例,并设置了一个successCallback函数,一旦用户成功登录,该函数就会被调用。看起来是这样的:
public function successCallback(ClientInterface $client)
{
$attributes = $client->getUserAttributes();
}调用此代码,但调用getUserAttributes()将导致以下错误:
异常- yii\authclient\InvalidResponseException 请求失败,代码: 400,消息: {“错误”:“invalid_request”,“error_description”:“令牌未提供”}
id服务器上的日志显示一个空白的客户机和用户,错误为invalid_token。
我仔细查看了我提出的请求,并看到了一个access_token元素。有什么问题吗?如有必要,我可以提供更多的信息。
发布于 2018-06-07 20:51:45
我想通了。问题是,yii2-authclient库将令牌作为GET参数发送,而ID服务器则将其作为POST param。我升级了yii2-authclient库,这解决了这个问题,因为最近的更改将参数发送为POST而不是GET。
https://stackoverflow.com/questions/50723551
复制相似问题