gpt4 book ai didi

javascript - 如何验证客户端 google+ 登录?

转载 作者:搜寻专家 更新时间:2023-11-01 05:23:28 24 4
gpt4 key购买 nike

因此,按照此处的基本教程 (https://developers.google.com/+/web/signin/javascript-flow),您可以轻松地为 google 帐户添加客户端登录。

通过修改代码查询/people/me,如下:

function signinCallback(authResult) {
if (authResult['status']['signed_in']) {
gapi.auth.setToken(authResult);
gapi.client.load('plus','v1', function(){
var request = gapi.client.plus.people.get({
'userId': 'me'
});
request.execute(function(resp) {
console.log(resp);
});
});
}

您可以获得基本账户信息;用户id、图片、姓名等

您还拥有来自 oauth 登录的有效访问 token 。

现在,除非您有一个完全客户端的应用程序,否则您将不得不通知服务器用户已登录,以获取该用户的应用程序数据。

我想做的是 POST 到/login/gauth {'access_token': ..., 'user_id': ....} 它将用 auth cookie 响应并重定向回来;除了现在我们有一个持久的本地身份验证 token ,我们可以使用它来识别用户。

在服务器上,我需要做的是使用访问 token 访问相同的 REST api (/people/me),并验证它返回的用户 ID;任何其他提供的信息在客户端都是可伪造的。

问题是,我找不到任何在服务器端验证/使用访问 token 的方法。

我可以在服务器上设置一个新的 OAuth 登录,并只执行一个服务器登录过程,但这相当复杂,而且考虑到我已经有一个有效的访问 token ,这似乎很浪费。

如何使用它?

最佳答案

您可能想要使用 https://developers.google.com/+/web/signin/server-side-flow 中概述的混合流程.在此流程中,您的客户端所做的事情与现在大致相同,但您的客户端还会获得一个短暂的“代码”,它应该通过安全通道传递给服务器。然后服务器根据服务器对此进行验证以获取其自己的访问(并且可能刷新) token 。这比客户端尝试发送 access_token 更安全,因为它减少了中间人可以利用它的窗口,并且它只能使用一次,从而减少了机会。

关于javascript - 如何验证客户端 google+ 登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20637782/

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