3 个不稳定版本
使用旧的 Rust 2015
0.2.1 | 2019 年 6 月 21 日 |
---|---|
0.2.0 | 2018 年 11 月 26 日 |
0.1.0 | 2018 年 11 月 26 日 |
#454 in 日期和时间
14KB
198 行
telegram-login-rs
Telegram 登录请求验证的 Rust 实现。
基于 Telegram 文档中的示例 Telegram 文档。
示例
extern crate chrono;
extern crate telegram_login;
use chrono::NaiveDateTime;
use telegram_login::{TelegramLogin, TelegramLoginError, check_signature};
let t_l = TelegramLogin {
id: 666666666,
username: Some("my_username".to_string()),
first_name: Some("Some".to_string()),
last_name: Some("Guy".to_string()),
photo_url: Some("https://t.me/i/userpic/320/my_username.jpg".to_string()),
auth_date: NaiveDateTime::from_timestamp(1543194375, 0),
hash: "a9cf12636fb07b54b4c95673d017a72364472c41a760b6850bcd5405da769f80".to_string()
};
let bot_token = "777777777:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa".to_string();
match check_signature(bot_token, t_l) {
Ok(()) => {
// The login is valid, so we can log the user in.
}
Err(TelegramLoginError::InvalidHash) => {
// The login failed, so we need to return an error to the client.
}
Err(TelegramLoginError::VerificationFailed) => {
// The login failed, so we need to return an error to the client.
}
}
依赖项
~8.5MB
~243K SLoC