文章目录

  • 前言
  • 一、第三方登录原理?
  • 二、使用步骤
    • 1.申请GitHub账号
    • 2.获取id和用户名

前言

  想试一下第三方登录,本来想试一下微信扫码的,结果微信开放平台要收费,只好用GitHub测试一下,感觉原理应该大差不差。


一、第三方登录原理?

  本质就是GitHub授权。
  Github 还提供了一个叫做“OAuth App”的东西,它的使用方式和 Github App 非常类似,最大的不同点是 OAuth App 所获取的权限都是固定且只读的,用户只能读取固定的数据而不能修改数据;而 Github App 几乎可以获取Github提供的所有功能权限,且所获取的权限可以被设定为“只读”,“可读可写”和“禁止访问”,对于权限的授权粒度会更细。

二、使用步骤

1.申请GitHub账号

settings —> Developer settings 进行申请GitHub apps 获取公钥和id

2.获取id和用户名

代码如下:

def get_github_user(request):code = request.GET.get('code')print('code:', code)client_id = '***********'client_secret = '****************'url = f"https://github.com/login/oauth/access_token?client_id={client_id}&client_secret={client_secret}&code={code}"res = requests.post(url, headers={"accept": 'application/json'}, timeout=30)print(res.text)# 返回json数据 获取access_tokenaccess_token = res.json().get("access_token")res = requests.get("https://api.github.com/user", headers={"accept": 'application/json',"Authorization": f"token {access_token}"}, timeout=30)print(res.text)github_res = res.json()try:github_name=github_res.get('login')github_id=github_res.get('id')print(github_id)print(github_name)except:print('err')

  这样我们就获取了GitHub的id和用户名,就可以进行下一步操作了,可以通过验证用户名和id直接进入或者其他方式验证。

GitHub第三方登录相关推荐

  1. Spring Boot 接入 GitHub 第三方登录,只要两行配置!

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:14 个 github 项目!个人原创100W +访问量博客:点击前往,查看更多 本文地址:https://www ...

  2. Java实现GitHub第三方登录详解

    GitHub第三方登录实现效果如下: 实现流程如下: 1.注册一个GitHub账号 2.注册一个授权的网站保存一个你的Client ID和Client Secret 3.准备一个页面,有一个链接跳转到 ...

  3. Spring Boot——基于OkHTTP的GitHub第三方登录DEMO

    基本概念 OkHTTP:HTTP是现代应用程序网络的方式.这就是我们交换数据和媒体的方式.有效地执行HTTP可使您的内容加载更快并节省带宽. OkHttp是默认情况下有效的HTTP客户端: HTTP ...

  4. aspnet登录界面代码_SPA+.NET Core3.1 GitHub第三方授权登录

    GitHub第三方授权登录 有许多文章都讲过GitHub第三方授权登录,但就是没有.NET Core配合前后端分离的项目(Vue,React)的实践.所以本文以前后端分离项目中如何在授权登录后,生成T ...

  5. 第三方登录之Github登录篇

    文章目录 前言 正文 创建App 图解流程: 编程实现 授权登录获取`access_token` 根据获取到的token信息请求用户信息 将用户信息存储到cookie中: 测试 后记 前言 在前面项目 ...

  6. OAuth2第三方登录快速接入

    前言:现在很多网站和App都支持第三方登录功能,这里以GitHub第三方登录举例,因为注册应用申请ID比微信和QQ简单.目前市面上主流的第三方登录协议就是 OAuth2.0, 例如 QQ,微信,微博等 ...

  7. 基于OIDC实现单点登录SSO、第三方登录

    OIDC联合身份认证机制 背景概念 1 OIDC身份认证协议 2 基于OIDC实现SSO 2.1 统一登录 2.1.1 流程 2.1.2 RP相关接口 2.1.3 OP相关接口 2.2 统一登出 2. ...

  8. 快速接入 GitHub、QQ 第三方登录方式

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:推荐 19 个 github 超牛逼项目!个人原创100W +访问量博客:点击前往,查看更多 本文提及第三方登录涉 ...

  9. Springboot集成第三方登录(facebook,linkedin,github)

    OAuth2.0的第三方登录集成 本文处理方式适用于java服务端REST API 一,了解OAuth2.0 OAuth2.0是一个关于授权(authorization)的开放网络标准,在全世界得到广 ...

最新文章

  1. java race condition_java多线程(一)Race Condition现象及产生的原因
  2. 【收藏】为什么在Scala中可以在运行时将AnyVal转换为AnyRef?AnyVal转换为AnyRef
  3. 电脑软件:微软Windows官方电脑管家,仅针对国内用户?看看怎么说
  4. SourceTree与git及AndroidStudio的联合使用详解(Windows系统)
  5. CeontOS7安装ansible
  6. 图书馆占座系统(二)
  7. 亚马逊平板刷机Linux系统,亚马逊平板刷机步骤盘点【图解】
  8. java营销活动动态引擎规则_JAVA规则引擎 Drools 教程
  9. MySQL 聚簇索引和非聚簇索引 mysql 索引为啥用b 树
  10. 2022 各国程序员薪资大揭秘!
  11. css clac计算属性
  12. 物理搬砖问题_搬砖问题 - jeff_nie - 博客园
  13. linux网卡时断时续,网卡不稳定的罪魁祸首
  14. 阿里云存储OSS之九大使用技巧
  15. 485集线器在总线型数据采集系统的应用
  16. [Irving] SQL 2005/SQL 2008 备份数据库并自动删除N天前备份的脚本
  17. 如何在Excel中的每个打印页面上重复特定的行或列
  18. SEO——搜索引擎优化
  19. 满分的一份软件测试工程师简历,凭什么?
  20. 互联网公司最常见的面试算法题大集合!

热门文章

  1. 利用OpenCV保存图片,提高压缩质量
  2. 2016年12月六级翻译
  3. 这些酷酷的文字特效图片,制作真的很简单!
  4. 【高危】Apache Linkis Gateway模块存在身份验证绕过漏洞(CVE-2023-27987)
  5. windows server2012 r2修改远程端口号
  6. 手把手教你用Git备份保存论文和代码等重要数据到云端
  7. 原生ajax(常见的http状态码/同源-跨域)
  8. 需求:结合mousedown、mousemove、mouseup事件让div可以被拖动起来
  9. pip指向pip2还是pip3的问题
  10. docker ubuntu or centos 中 报错 pip2: command not found 为 Python 2 安装 pip2