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

简介: 接入github第三方登录(上)

大家好,这里是米洛,一个想和大家一起分享测试开发相关的技术,面试经验和成长经历的博主!


背景知识

目前平台维系了自己的一套用户系统,但是有没有觉得每次有新用户都需要手动注册会比较麻烦?在企业中,如果大家所有系统都用一个账号去登录,会不会十分方便呢?

其实企业内部都会有这样的sso系统,实现一个账号共享所有平台。那我们有什么是比较通用的,大家都有的账号呢?

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

如果不了解的话,可以搜索对应的关键词: 单点登录、SSO、OAuth

构思


单点登录其实还包括session等部分,但是因为我们只是想通过github拿到用户信息,并不需要它帮我们管理用户登录状态。所以我们接入的话,通过获取用户信息,整合到我们的pity_user表即可。

创建OAuth app


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

  • 进入settings

1.jpg

image

  • 选择Developer settings

2.jpg

image

  • 切换到OAuth app

3.jpg

image

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

  • 点击New OAuth App

4.jpg

image

注册好了之后就可以查看了!

  • 获取ClientID和ClientSecrets

5.jpg

image

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

详细接入流程

重定向到login页面


假设我们的首页是https://www.wqrf.com,我们访问首页的时候,由于未登录,会被重定向到登录页。

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

进入github认证页面


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

如果用户连github都没登录,那么这个页面会变成一个github的登录页,否则会变成一个授权页面,问你是不是要登录这个网站,见下图:

6.jpg

图是未登录github的情况

通过验证


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

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

获取token


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

调用github接口


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

总结


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

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

7.PNG

image



相关文章
|
2月前
|
Kubernetes 测试技术 Perl
混沌测试平台 Chaos Mesh
混沌测试平台 Chaos Mesh
85 1
|
3月前
|
传感器 数据采集 监控
LabVIEW电池管理系统测试平台
LabVIEW电池管理系统测试平台
50 4
|
3天前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
14 2
|
1月前
|
安全 项目管理 开发工具
探索 GitHub:现代开发者的协作平台
GitHub 是一个基于 Git 的版本控制和协作平台,广泛应用于软件开发和项目管理。它不仅提供代码托管服务,还是开发者社区和开源项目的重要平台。本文介绍了 GitHub 的核心功能(如代码托管、协作工具、CI/CD 集成等)、使用技巧(如规范化提交信息、参与开源项目等),帮助开发者提升效率和协作能力。GitHub 自2008年成立以来,已成为全球最大的代码托管平台,支持团队协作和项目管理。
|
2月前
|
测试技术 Android开发 iOS开发
Appium 是一个开源的自动化测试框架,它支持多种平台和多种编程语言
Appium是一款开源自动化测试框架,支持iOS和Android多平台及多种编程语言。通过WebDriver协议,开发者可编写自动化测试脚本。在iPhone上实现屏幕点击等操作需安装Appium及其依赖,启动服务器,并设置所需的测试环境参数。利用Python等语言编写测试脚本,模拟用户交互行为,最后运行测试脚本来验证应用功能。对于iPhone测试,需准备真实设备或Xcode模拟器。
101 1
|
2月前
|
运维 Kubernetes 监控
|
2月前
|
SQL 安全 网络安全
GitHub点赞飙升!电信大牛的Python渗透测试实战指南
在网络安全领域,会不会编程,是区分“脚本小子”和真正黑客的关键。实际的渗透测试中会遇到各种复杂的网络环境,常用工具不一定能满足需求,这时就需要对现有工具进行扩展,或者编写符合要求的工具、自动化脚本,这都需要一定的编程能力。在分秒必争的 CTF 竞赛中,想要高效地使用自制脚本工具来达成各种目的,更是需要有编程能力。 Python 这两年越来越火!除了语法简单、开发效率高以外,Python 最大的优势就是拥有超多第三方库。很多有名的网络安全工具和安全系统框架都是用 Python 开发的!所以,掌握 Python 编程已经成为网络安全从业者的必备技能之一。如果你想成为一名合格的安全从业者,就不能只会
|
4月前
|
人工智能 分布式计算 DataWorks
首批!阿里云 MaxCompute 完成中国信通院数据智能平台专项测试
2024年5月31日,在中国信通院组织的首批数据智能平台专项测试中,阿里云数据智能平台解决方案(MaxCompute、DataWorks、PAI)顺利完成测试。
279 5
首批!阿里云 MaxCompute 完成中国信通院数据智能平台专项测试
|
3月前
|
传感器 存储 数据采集
LabVIEW阀性能测试平台
LabVIEW阀性能测试平台
39 0
|
4月前
|
jenkins Java 测试技术
电商返利平台的测试与持续集成
电商返利平台的测试与持续集成