一、Google
唯一标识 sub
- 获取授权链接authorizeUrl : https://accounts.google.com/o/oauth2/v2/auth?response_type=code\&client_id=7214992782-\&access_type=offline\&scope=openid email profile&prompt=select_account
二、telegram
参考链接:https://juejin.cn/post/7072557507595485221
唯一标识 id
核心参数配置
-
/setdomain:控制 "在哪里显示" (前端域名) -
data-auth-url:定义 "数据发去哪" (后端接口)
1、BotFather创建机器人
-
/start
-
/newbot
-
输入机器人名称(以bot结尾) Done:成功
-
/setdomain (去掉https://) 公网可访问的重定向URL
2、验证规则
-
准备数据字符串:将收到的 除
hash之外 的所有字段(如auth_date,first_name,id,username),按字段名字母顺序排序,用换行符\n连接成key=value的形式。 示例 :auth_date=1234567890\nfirst_name=张三\nid=987654321\nusername=zhangsan -
计算密钥:将你的 Bot Token 进行 SHA256 哈希运算,得到的结果作为 HMAC 计算的密钥。
-
计算并比对签名:使用上一步得到的密钥,对第一步生成的数据字符串计算 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代码直接跳转授权链接
