ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript – 如何验证客户端谷歌登录?

2019-06-12 16:22:15  阅读:143  来源: 互联网

标签:javascript google-plus


因此,按照此处的基本教程(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登录中获得有效的访问令牌.

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

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

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

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

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

我该如何使用它?

解决方法:

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

标签:javascript,google-plus
来源: https://codeday.me/bug/20190612/1226884.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有