测试平台系列(38) 接入github第三方登陆(上)

2021年09月16日 阅读数:3
这篇文章主要向大家介绍测试平台系列(38) 接入github第三方登陆(上),主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

你们好,这里是米洛,一个想和你们一块儿分享测试开发相关的技术,面试经验和成长经历的博主!git

欢迎你们关注个人公众号: 测试开发坑货github


背景知识

目前平台维系了本身的一套用户系统,可是有没有以为每次有新用户都须要手动注册会比较麻烦?在企业中,若是你们全部系统都用一个帐号去登陆,会不会十分方便呢?面试

其实企业内部都会有这样的sso系统,实现一个帐号共享全部平台。那咱们有什么是比较通用的,你们都有的帐号呢?微信

其实有许多,QQ/微信/支付宝这些基本你们都有。不过考虑到接入的难易程度,我这边选择了支持github帐号接入。session

若是不了解的话,能够搜索对应的关键词: 单点登陆、SSO、OAuthapp

构思

单点登陆其实还包括session等部分,可是由于咱们只是想经过github拿到用户信息,并不须要它帮咱们管理用户登陆状态。因此咱们接入的话,经过获取用户信息,整合到咱们的pity_user表便可。测试

建立OAuth app

github官方文档: https://docs.github.com/v3/oauth/网站

  • 进入settings

  • 选择Developer settings

  • 切换到OAuth app

能够看到,我这里申请了2个,一个是local(本地调试用),另外一个是线上地址。调试

  • 点击New OAuth App

注册好了以后就能够查看了!code

  • 获取ClientID和ClientSecrets

这2个值记得保存好,稍后会用到

详细接入流程

重定向到login页面

假设咱们的首页是https://www.wqrf.com,咱们访问首页的时候,因为未登陆,会被重定向到登陆页。

咱们提供一个按钮或者连接叫: 用Github登陆,当用户点击这个按钮的时候,咱们就跳转到:

进入github认证页面

https://github.com/login/oauth/authorize?client_id=你申请的clientid

若是用户连github都没登陆,那么这个页面会变成一个github的登陆页,不然会变成一个受权页面,问你是否是要登陆这个网站,见下图:

图是未登陆github的状况

经过验证

登陆后Github会根据你的clientId生成一个code,重定向到你的主页并带入code参数:

https://www.wqrf.com?code=Github生成的code

获取token

接着咱们就经过code+clientid+secret去拿到github的token。

调用github接口

拿到了以后就能够大摇大摆地调用github的接口获取到用户信息了。

总结

等不及的能够看看具体的github使用文档,虽然是英文的,可是很详细。等得及的,能够看我下一篇实操

github最近打开都很慢,会影响登陆效果。

下一篇: 反转链表