gpt4 book ai didi

google-api-php-client - Google Oauth2 verifyIdToken 返回具有有效 id_token 的无效 token 签名

转载 作者:行者123 更新时间:2023-12-04 21:16:11 25 4
gpt4 key购买 nike

我正在尝试使用 google Oauth2 api 的 php 客户端来验证 id_token。
id_token 由用户登录其 google 帐户的 javascript 应用程序提供,我将此 token 提供给我的 php api 服务器,以验证它并从我的 bdd 检索正确的信息。

javascript中的登录成功并且访问和id_token似乎正确,但是当我尝试使用Google_Client->verifyIdToken()进行验证时

$client = new Google_Client();
$ticket = $client->verifyIdToken(myToken);

,它返回一个无效的 token 签名异常(尝试使用谷歌证书验证 token 时失败)。

我的第一个假设是认为 token 无效,所以为了确保它是有效的,我将它提交到谷歌验证 url https://www.googleapis.com/oauth2/v1/tokeninfo?id_token=token
它返回用户信息,所以我的 token 似乎是有效的:
{
issuer: "accounts.google.com",
issued_to: "id",
audience: "id",
user_id: "id",
expires_in: 2149,
issued_at: 1397636222,
email: "mail",
verified_email: true
}

尝试了我能想到的一切,但无法解决这个问题。
有人能帮我吗 ?

编辑 :我只传递了我在我的 javascript 应用程序上进行身份验证时获得的 id_token
access_token: "ya ... Es"
authuser: "1"
client_id: "81 ... .apps.googleusercontent.com"
code: "4/9... gI"
cookie_policy: "single_host_origin"
expires_at: "1397723048"
expires_in: "3600"
g-oauth-window: Window
g_user_cookie_policy: "single_host_origin"
hd: "dmic.fr"
id_token: "ey... d8E" <====================================
issued_at: "1397719448"
num_sessions: "2"
prompt: "none"
response_type: "code token id_token gsession"
scope: "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/plus.me"
session_state: "9 ... 2162..936b"
state: ""
status: Object
token_type: "Bearer"

在某些时候,我还尝试将整个 access_token 传递给 $client->setAccessToken() 并在没有参数的情况下调用 $client->verifyIdToken() (从 access_token 自己中提取 id_token ),结果相同。

我使用的所有代码都已经发布了,我也尝试设置apikey,client_id,client_secret,没有结果

最佳答案

我有一个类似的问题,我从 oauth2client 收到“无效的 token 签名”错误,但它与 tokeninfo API 调用一起工作。

在我的情况下,它可能是由 oauth2client 使用的加密库引起的,因为当我用 pyopenssl 0.15.1 替换 pycrypto 2.6 时问题消失了。可能是 PyCrypto 错误?

编辑:
是的,经过验证,这是一个 PyCrypto 错误。它已于 20 小时前关闭 :D

https://github.com/google/oauth2client/issues/201

关于google-api-php-client - Google Oauth2 verifyIdToken 返回具有有效 id_token 的无效 token 签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23104721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com