#telegram #login #verification #requests #chrono #docs #date-time

telegram-login

Telegram 登录请求验证的 Rust 实现

3 个不稳定版本

使用旧的 Rust 2015

0.2.1 2019 年 6 月 21 日
0.2.0 2018 年 11 月 26 日
0.1.0 2018 年 11 月 26 日

#454 in 日期和时间

MIT 许可证

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