我尝试使用电报机器人连接网站,当我打开网站时,当我验证throw node.js和不相等时,我得到查询和散列
const key = crypto.createHash('sha256').update(my_bot_token).digest()
const validateHash = crypto.createHmac('sha256', key).update('auth_date=1646xxx\nfirst_name=namexxx\nid=1231xxxx\nAusername=alexLxxx').digest('hex')
console.log(hash === validateHash) false
我不知道我哪里出错了,我尝试使用npm包telegram-checking-authorization,但同样的错误
2条答案
按热度按时间qgelzfjb1#
您应该添加从请求回调接收的所有字段数据,但删除
hash
字段。例如:我尝试并成功了。
djmepvbi2#
我也遇到过这种情况,我在My question中描述了它。您可以从这个API复制响应:
https://oauth.telegram.org/auth/get?bot_id=xxx
有时候函数的响应会起作用,有时候不起作用,老实说,我不明白为什么。尝试将user
打印到控制台,然后检查两个哈希是否匹配!我所做的如下:
我改变了我的机器人的域到
https://www.w3schools.com/
和去w3school在线编辑器https://www.w3schools.com/js/tryit.asp?filename=tryjs_string_indexof
例如,打印user
对象到控制台(替换javascript在在线编辑器与代码下面,然后替换代码中的YOUR-BOT-NAME与您的机器人的名称):1.按f12键,进入控制台页签,用widget登录,用你的函数检查控制台打印的数据。