Telegram Login Widget 折腾记

2018/2/9 posted in  other comments

文档 https://core.telegram.org/widgets/login#widget-configuration

需要使用@Botfather设置网站的域名

文档提供了方便生成widget的工具配置

其中获取认证数据的两种方式

一种用于前端,一种用于后端

  • callback 会生成 data-onauth="onTelegramAuth(user)" 属性
  • redirecting url 会生成 data-auth-url="http://telegram-login.dsh.li/auth"

    设置好会生成 Embed Code 一段js代码

文档工具中生成的onTelegramAuth函数实现

function onTelegramAuth(user) {
    alert('Logged in as ' + user.first_name + ' ' + user.last_name + ' (' + user.id + (user.username ? ', @' + user.username : '') + ')');
}   

如果使用 redirecting url,示例,以 query 参数返回

http://telegram-login.dsh.li/auth?id=305659598&first_name=ifsc&username=ifsc01&photo_url=https%3A%2F%2Ft.me%2Fi%2Fuserpic%2F320%2Fifsc01.jpg&auth_date=1518166479&hash=e4031407cb36ab528b646c3222f081d94da85ee2e2be0efa49f7bca6f5e539f0

hash 字段用于验证参数

php 实现 https://gist.github.com/anonymous/6516521b1fb3b464534fbc30ea3573c2

最后 Golang 的demo

https://github.com/lidashuang/telegram-login-go