位置: IT常识 - 正文

实现 Google 第三方授权登录(谷歌第球)

编辑:rootadmin
实现 Google 第三方授权登录

推荐整理分享实现 Google 第三方授权登录(谷歌第球),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:google 3pl,谷歌第三方,google第三方,谷歌第三代手机,谷歌第三代手机,谷歌三套,谷歌三套,google第三方,内容如对您有帮助,希望把文章链接给更多的朋友!

最近做项目要实现Google的第三方登录,这简单的记录一下。

目前Google的第三方登录有很多方案,且官方提供SDK方便接入。但是我这个项目同时要实现网页和客户端。所以选择了 Google OAuth 2.0 的方案。

当然,也可以 《实现 Facebook 第三方授权登录》

Google 的 OAuth 2.0 流程

配置 Google Cloud Platform首先访问 Google Cloud Platform 控制台

地址:https://console.cloud.google.com/projectselector2/home

开始创建 Google Cloud Platform 项目

OAuth 同意屏幕

在左边的侧边栏中选择 API和服务

进入API和服务页面

注意:测试账户只能添加不能删除且限制100个

设置 OAuth 同意屏幕流程(建议查看大图)

网域验证

设置网域验证

配置完成的样式

凭据实现 Google 第三方授权登录(谷歌第球)

客户端ID用户用户登录,密钥用于服务器验证Token是否有效以及获取用户信息

设置凭据

获取登录地址

大致的流程

Google的文档其实写的很清楚了:传送门

生成临时的用户ID主要是为了识别触发OAuth登录的用户。这里最好还是后端服务器生成。

主要说的是如何生成Google的登录链接,下面是一个生成好的登录链接。

https://accounts.google.com/o/oauth2/v2/auth?scope=https://www.googleapis.com/auth/userinfo.email&include_granted_scopes=true&response_type=token&state=3EAB37D9D5310BFE&redirect_uri=https://www.idzd.top/oauth&client_id=858244192640-2t7giod7t0rmbc36tel1fl50ppqn7s8e.apps.googleusercontent.com

一个生成好的登录链接

参数说明scope (必须)需要用户给予的权限,这里只要了用户的邮箱include_granted_scopes增量授权,即获得用户以前给予的所有权限response_type (必须)返回的授权码类型,这里用的tokenstate用来维护授权请求和授权服务器的响应之间的状态的任何字符串值redirect_uri (必须)确定用户完成授权流程后API服务器将用户重定向到的位置client_id (必须)应用程序的客户端ID验证Token

好的,我们已经成功登录了,现在得到了一个回调地址

https://www.xxx.top/404#state=3EAB37D9D5310BFE&access_token=ya29.a0AfH6SMB3rFcyq-d8NW3IlCriJvdpPY9Qy29TtMSnuwZ9wVXgGpfDCNBqZvnoKrrcDipoP9A234KtdKpDdXbyzOVp_1PbLbyIMjO5Hx5c_vm0A9PWDTIfXfmwVsugPlUp8VcRCNHnsXVwds2GT&token_type=Bearer&expires_in=3598&scope=email%20openid%20https://www.googleapis.com/auth/userinfo.email&authuser=0&prompt=none

回调地址

其中 access_token 和 state 是关键,

为了严谨,前台会比对 state 的值和生成登录地址时返回的值是否一致,来验证会话的一致性。但是一般前台页面很难安全的保存这个信息。

好的,现在把 access_token 和 state 发回给后端,让他验证token是否有效吧~

后端GET这个地址,获取用户的邮箱:

https://www.googleapis.com/oauth2/v2/userinfo?access_token=ya29.a0AfH6SMB3rFcyq-d8NW3IlCriJvdpPCNBqZvnoKrrcDipoP9A234KtdKpDdXbyzOVp_1PbLbyIMjO5Hx5c_vm0A9PWDTIfXfmwVsugPlUp8VcRCNHnsXVwds2GT

通过令牌可以获取用户的信息,比如邮箱,昵称,头像等等

{ "id": "XXXXXXXXXXXXXXXXX", "email": "xxxx1921295@qq.com", "verified_email": true, "picture": "https://lh3.googleusercontent.com/a-/AOh14GjW7-O4rqIeKtGB_rorN6KIDYd6fRzaEaPYPoKV=s96-c"}

JSON

OK,到这步,就直接根据邮箱和id,来建立对应的账号关系就可以了~

本文链接地址:https://www.jiuchutong.com/zhishi/277633.html 转载请保留说明!

上一篇:电脑开机时进入并在BIOS里设置硬盘启动的方法(电脑开机时进入bios界面快捷键)

下一篇:渗透神器Kali安装使用手册中文版(kali渗透工具安装)

  • pdf文件打开是网页(pdf文件打开是乱码)(PDF文件打开是网页怎么恢复)

  • 如何设置ip地址(win10如何设置ip地址)

  • 华为nova5系列有几款(华为nova5系列有什么区别)

  • 抖音点赞的评论在哪看(抖音点赞的评论网络错误)

  • 探探直播可以用电脑吗(探探直播用手机可以投影吗)

  • 美团闪购商家首单什么意思(美团闪购页面在哪里)

  • 华为mate30pro侧边栏怎么设置(华为mate30pro侧边有个个小块)

  • 腾讯课堂后台播放老师知道吗

  • 和对方的微信聊天记录怎么恢复(和对方的微信聊天记录可以转到我的手机上吗)

  • 蓝牙音箱可以边充电边用吗(蓝牙音箱可以边充电边听吗)

  • 网易云音乐可以同时在两个手机登录吗(网易云音乐可以一起听歌吗)

  • 快手直播举报可以查出是谁举报的吗(快手直播举报可信吗)

  • 磁盘性能多少分正常(磁盘性能100)

  • 无线充电频繁拿起伤电池吗(无线充电一直充电伤手机么)

  • 红米k305g对比k20pro的区别(红米k30和k20pro参数对比)

  • 键盘三个灯分别是什么(键盘三个灯分别是什么87键)

  • 华为发布mate30屏占比(华为mate30屏幕报价)

  • 喜马拉雅如何测试声音(喜马拉雅如何测音质)

  • 抖音怎么剪辑自己的音乐(抖音怎么剪辑自己的原声)

  • 手机怎么定位跟踪(手机怎么定位跟踪电脑)

  • 苹果xsm电池百分比在哪里(苹果xsm手机电池容量)

  • 小米MINI路由器的硬盘的详细教程(小米mini路由器mesh)

  • 卡齐兰加国家公园的亚洲象群,印度阿萨姆邦 (© Parameswaran Pillai Karunakaran/Minden Pictures)(卡齐兰加国家公园地理位置)

  • js中Array.from的用法(js array())

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络