当前位置: 首页 > 知识库问答 >
问题:

yii2 OpenId Connect错误-yii2-Authclient返回400错误“未提供令牌”,当我尝试getUserAt⃣tes()

吴涵育
2023-03-14

我正在使用Yii2 authclient库将OpenId Connect实现到我的Yi2应用程序中。我可以登录并交换令牌的代码,没有问题。我已经学习了web上的大多数代码示例,并设置了一个successCallback函数,该函数在用户成功登录后被调用。它看起来像这样:

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

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

异常-yii\Authclient\InvalidResponse seException
请求失败,代码为:400,消息:
{"错误":"invalid_request","error_description":"未提供令牌"}

id服务器上的日志显示空白的客户端和用户,错误为< code>invalid_token。

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

共有1个答案

杨雪松
2023-03-14

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

 类似资料:
  • 我正在尝试通过网络api从Facebook Graph下载一些数据,到目前为止一切正常,不知何故,这段代码给我的错误是400,而不是json响应 当它到达此行时: 它会抛出一个IOException错误,并带有以下消息: 服务器返回的HTTP响应代码:400用于URL:https://graph.facebook.com/v2.9/sear... 在chrome中打开该url会返回页面,没有错误。

  • 我试图使用Gmail API将用户设置应用到Gmail帐户,但它不断返回错误400错误请求。 我可以看到错误代码在Gmail API控制台,它来自我的服务号,所以代码不可能是如此错误,但它让我发疯,只是不能找出什么是错误的。 如果有人能给我指出正确的方向,我会非常感激。

  • 我正在尝试从访问代码中获取访问令牌。但存在 400 错误请求错误的错误 我正在使用此链接获取访问代码 https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 响应此链接,我正在获取查询字符串中的代码,返回 URL 代码=Mh12d04c8

  • 问题内容: 这工作正常: 这将返回400 Bad Request(只是使用.ajax来支持错误处理的上述jQuery的重新格式)。 问题答案: 我认为您只需要再添加2个选项(和):

  • 我正在尝试使用授权代码流,而不是我当前使用的隐式授权。下面是这两个流的文档。我正在使用来自我的角度2应用程序的斑点API。前三个步骤进展顺利,我从回调调用中获取代码。但是当我向 https://accounts.spotify.com/api/token 发出帖子呼叫时,我得到CORS异常,因为呼叫返回浏览器禁止的网站。返回页面与单击此链接 https://accounts.spotify.com

  • 我已经写了一个节点。使用express框架的jsapi。我正在使用wait和async。我在try-catch块中捕获异步函数。但是,在catch(err)方法中,不会返回err。 在上面的例子中,我故意调用一个不存在的函数,这样它就会抛出一个错误。 我得到的答复如下。它正在命中catch块,但没有将错误添加到数据对象中。 但是,如果我将下面的行移出try catch块。控制台将抛出以下错误。 所