Google第三方授权登录

Google第三方授权登录
01 引言很多网站登录都接入了三方登录如最近接了海外项目需要接入Google授权登录正好记录一下也分享给大家。02 概述主流的三方授权的基本都是基于OAuth 2.0的技术方案实现的Google由于国内地域问题授权可能用的比较少但是流程基本大同小异。国内最常见的就是腾讯系的微信小程序授权就是借鉴了OAuth 2.0技术方案改进而来大致流程都一样。第三方授权的流程大致分为四步跳转至三方产品登录三方返回授权码code通过授权码向第三方换取access_token通过access_token调用三方产品的API获取需要的信息Google授权提供了多种接入方式我们以Web应用为例我们看下整体的流程和说明03 前期准备在对接Google授权之前我们需要创建授权凭据用来获取固定的参数。官网地址https://developers.google.com/identity/protocols/oauth2/web-server?hlzh-cn3.1 创建项目根据官方传送门直接跳转Google Cloud在客户端里面创建项目这里使用simonking-google3.2 配置授权平台按照提示完成信息提交即可。3.3 创建客户端完成上面的两个才能创建客户端。同样按照提示填写完信息即可。创建完客户端之后会显示我们的客户端ID和客户端秘钥。客户端秘钥只能展示一次。我们可以通过下载JSON保存其关键信息。信息格式如下{web:{client_id:452972897795-*********.apps.googleusercontent.com,project_id:tonal-****-b4,auth_uri:https://accounts.google.com/o/oauth2/auth,token_uri:https://oauth2.googleapis.com/token,auth_provider_x509_cert_url:https://www.googleapis.com/oauth2/v1/certs,client_secret:GOCS*******Yko,redirect_uris:[https://****.com],javascript_origins:[https://*****.com]}}04 授权流程授权流程分了6步其中第一步需要的部分参数就是从上面的json中获取的。4.1 重定向Google这是第1、2步的合并拼接好参数https://accounts.google.com/o/oauth2/v2/auth?scopehttps://www.googleapis.com/auth/userinfo.emailinclude_granted_scopestrueresponse_typetokenstate3***5310BFEredirect_urihttps://***.com client_id452972897795-6m34anl4m*****apps.googleusercontent.com访问之后会重定向到Google登录的页面4.2 获取access_token这是第3,4,5步。登录Google之后会重定向到redirect_uri参数的地址并携带access_token。返回信息如下https://***.com/# state3EAB3****0BFE isshttps://accounts.google.com access_tokenya29.a0AT3o******_NeqMJ37Uw0206 token_typeBearer expires_in3599 scopeemail%20https://www.googleapis.com/auth/userinfo.email%20openid authuser0 promptconsent4.3 获取用户信息有了access_token就可以获取Google的账号信息了。https://www.googleapis.com/oauth2/v2/userinfo?access_tokenya29.a0AT3o******_NeqMJ37Uw0206获取的信息如下获取到Google账号的信息就可和业务系统做关联或者其他业务操作了。05 小结不同的产品接入的方式上可能不同但是只要技术栈类似那么接入也差不了多少。对接Google账号。可能面临最大的问题就是网络限制的问题。当然既然公司要接入网络也会有专门的人会帮忙打通。