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

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

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

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


上篇我们想好了具体的思路,这篇就来实现之。

实现9.jpg


其实后端要做的部分很简单,只需要完成后面2步即可,即生成token和获取用户信息。

  • 编写register_for_github方法
    当从github获取到用户信息以后,写入我们自己的用户表,如果有则更新用户信息,如果没有则新增一条记录。


image

先查询到email和username都匹配的用户,如果有,我们就更新用户的昵称和头像字段,并更新他的最后登录时间

如果没有该用户,我们就新生成一个用户。这里随机了几位数字加盐,保证用户的密码是随机的,如果通过github登录的用户,基本上不太容易试出他在测试平台用户表的密码

  • 编写github登录接口

10.jpg

image

请求参数为code,这里用到了requests的Session类,因为此处需要发送2次http请求。

  1. 获取access_token

url: https://github.com/login/oauth/access_token

method: GET/POST都可以

参数: code,clientid和secret,也就是前文要求记录的2个字段

返回数据是这样的:

11.jpg

image

一串很普通的文本,我们需要从里面拿到access_token

  1. 获取用户信息

url: https://api.github.com/user

method: GET

headers: {"Authrozation": "token 刚才生成的token"}

这样就能拿到用户信息了:

12.jpg

image

可以看到里面有login(登录名),email(邮箱),name(昵称),其他有用的信息我们可以取avatar_url,方便我们能直接拿对方的头像来展示。

前端部分

前端部分我已经实现了,大概思路是提供github登录的按钮,当用户进入页面的时候判断url里面是否包含?code=, 如果有则说明是github登录成功后的回调事件,再将code解析后调用上面编写的login接口,其他逻辑与普通用户登录一致。

大家有兴趣可以研究下具体的实现,写的比较糙,可以通过提交记录来看到对应的改动~

github提速可以参考这个,亲测有效:




相关文章
|
1月前
|
存储 测试技术 虚拟化
VMmark 4.0.3 - 虚拟化平台基准测试
VMmark 4.0.3 - 虚拟化平台基准测试
48 0
VMmark 4.0.3 - 虚拟化平台基准测试
|
2月前
|
安全 前端开发 Linux
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
100 3
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
|
3月前
|
存储 人工智能 项目管理
2025年GitHub平台上的十大开源MCP服务器汇总分析
本文深入解析了GitHub上十个代表性MCP(Model Context Protocol)服务器项目,探讨其在连接AI与现实世界中的关键作用。这些服务器实现了AI模型与应用程序、数据库、云存储、项目管理等工具的无缝交互,扩展了AI的应用边界。文中涵盖Airbnb、Supabase、AWS-S3、Kubernetes等领域的MCP实现方案,展示了AI在旅行规划、数据处理、云存储、容器编排等场景中的深度应用。未来,MCP技术将向标准化、安全性及行业定制化方向发展,为AI系统集成提供更强大的支持。
877 2
2025年GitHub平台上的十大开源MCP服务器汇总分析
|
3月前
|
文字识别 网络协议 开发工具
GitHub封锁?推荐5个国产的Git仓库替代平台
近日,GitHub对中国区IP的部分限制引发了广泛关注。未登录用户被拒,已登录用户功能受限,南北网络环境差异更显“内卷”。为应对这一挑战,本文推荐了多个国产Git平台:Gitee(码云)、GitCode(CSDN旗下)、CODING(腾讯系)、CodeUP(阿里云支持)及微信代码管理工具。这些平台功能全面、稳定性强,是开发者迁移项目的理想选择。通过同步代码、配置CI/CD流水线等简单步骤,可确保项目平稳过渡。此次事件提醒我们,掌握核心技能与支持国产平台同样重要!
923 11
|
6月前
|
开发工具 git
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
355 69
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
|
8月前
|
人工智能 供应链 安全
AI辅助安全测试案例某电商-供应链平台平台安全漏洞
【11月更文挑战第13天】该案例介绍了一家电商供应链平台如何利用AI技术进行全面的安全测试,包括网络、应用和数据安全层面,发现了多个潜在漏洞,并采取了有效的修复措施,提升了平台的整体安全性。
359 4
|
8月前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
364 1
|
9月前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
176 2
|
8月前
|
监控 安全 测试技术
构建高效精准测试平台:设计与实现全攻略
在软件开发过程中,精准测试是确保产品质量的关键环节。一个高效、精准的测试平台能够自动化测试流程,提高测试覆盖率,缩短测试周期。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
195 0
|
5月前
|
开发工具 git C++
【够用就好002】外行第一次发布github项目仓库
#deepseek#自学 记录外行学习代码的历程 今天是上传自己的工具代码到github仓库,一直以来是伸手党克隆别人的项目,今天在deepseek的辅导下上传自己的内容。

热门文章

最新文章