第三方登录集成

一、Google

唯一标识 sub

二、telegram

参考链接:https://juejin.cn/post/7072557507595485221

唯一标识 id

核心参数配置

  • /setdomain:控制 "在哪里显示" (前端域名)

  • data-auth-url:定义 "数据发去哪" (后端接口)

1、BotFather创建机器人
  1. /start

  2. /newbot

  3. 输入机器人名称(以bot结尾) Done:成功

  4. /setdomain (去掉https://) 公网可访问的重定向URL

2、验证规则
  1. 准备数据字符串:将收到的 除 hash 之外 的所有字段(如 auth_date, first_name, id, username),按字段名字母顺序排序,用换行符 \n 连接成 key=value 的形式。 示例auth_date=1234567890\nfirst_name=张三\nid=987654321\nusername=zhangsan

  2. 计算密钥:将你的 Bot Token 进行 SHA256 哈希运算,得到的结果作为 HMAC 计算的密钥。

  3. 计算并比对签名:使用上一步得到的密钥,对第一步生成的数据字符串计算 HMAC-SHA256,并将结果转换为十六进制字符串。将此结果与收到的 hash 参数进行精确比对。

补充:本地调试需公访问可借助ngrok内网穿透请求转发

  • 启动服务:先启动后端服务,再启动ngrok (ngrok http 9218)
  • 复制ngrok地址:复制 https://xxxx.ngrok.io

大致流程

1、google:返回authorizeUrl 授权链接

String authorizeUrl = authRequest.authorize(AuthStateUtils.createState());

2、telegram:前端嵌入script代码直接跳转授权链接
相关推荐
小蒜学长13 分钟前
“喵汪联盟”宠物领养系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·宠物
SomeB1oody20 分钟前
【RustyML入门】3.7. 循环层
开发语言·后端·机器学习·rust·教程
东风破_10 小时前
ESLint 是什么?为什么你的项目需要它?
前端·后端·代码规范
嘻哈∠※10 小时前
0061基于 SpringBoot 的投稿与稿件处理系统设计与实现
java·spring boot·后端
卷无止境11 小时前
在 awesome-fastapi 里,哪些库值得一看?
后端·python
卷无止境12 小时前
FastAPI 的Admin面板生态
后端·python
捡田螺的小男孩13 小时前
什么是 Skill?手把手带你写一个简单有用的 Skill!
前端·后端·程序员
IT_陈寒13 小时前
Redis集群这个坑,差点让我通宵
前端·人工智能·后端
用户83562907805114 小时前
Python 自动化 Word 文本框处理:创建、定位、填充内容与管理
后端·python
网渡科技14 小时前
向量数据库选型指南:RAG场景下的性能对比与调优策略
后端