【独家】实现Telegram OAUTH2 redirect重定向方式授权登录、第三方登录

424 阅读1分钟

注册bot和callback回调方式登录,下面这篇文章已经写得非常清楚了:

Telegram(电报)授权登录(web)第三方第三方登录----Telegram(电报)--授权方式为Callback - 掘金 (juejin.cn)

我主要是介绍这篇文章中未实现的redirect重定向授权登录方式。

下面是具体步骤:

1、访问重定向地址:


https://oauth.telegram.org/auth?bot_id=YOUR_BOT_ID&origin=YOUR_ORIGIN_URL&return_to=YOUR_REDIRECT_URL&request_access=write&embed=0

YOUR_ORIGIN_URL是你的源地址。

YOUR_REDIRECT_URL是你的目标重定向地址。

(这两个地址的域名部分、ip端口部分要是你的机器人所绑定的域名、ip端口)

(return_to参数找了我好久,tg官方开发文档都没有。。。。。最后还是从callback授权页的开发者工具页面上看到的。。。。。网上的文章还有那种要带public_key公钥的。。。。。最后发现根本不需要带公钥!)

2、访问上述地址之后,会跳到授权地址,用户授权后,tg会跳转到你所配置的return_url,并带上tgAuthResult授权token,地址类似:


YOUR_REDIRECT_URL#tgAuthResult=BASE64_STR

3、最后,你就可以通过tgAuthResult的值,获取用户信息,以及校验token中包含的hash是否真正来自tg。

具体代码详见下方的文章:

Python:coveralls.io/jobs/124554…

Java:hoxtoncraft.com/p/%E9%97%9C…

文章参考:

Telegram(电报)授权登录(web)第三方第三方登录----Telegram(电报)--授权方式为Callback - 掘金 (juejin.cn)

關於Telegram Oauth 如何在Java中驗證Hash的正確性 (附上JavaCode) (hoxtoncraft.com)

Telegram OAuth Authorization for Your Site - DEV Community

pennersr/django-allauth | Job 1 | allauth/socialaccount/providers/telegram/views.py | Coveralls - Test Coverage History & Statistics