8个版本

使用旧版Rust 2015

0.9.8 2018年12月26日
0.9.7 2018年10月25日
0.9.5 2017年8月25日
0.9.3 2017年3月20日

#519 in 身份验证

MIT/Apache

45KB
537

Authy-rs

为Authy双因素Web服务提供绑定

用法

请参阅文档以获取更多详细信息。

您需要在authy.com上的应用程序中提供API密钥。

请确保将authy crate添加到您的Cargo.toml

[dependencies]
authy = "*"

‘低级’用法示例

extern crate authy;
use authy::{Client, AuthyError};
use authy::api::user;

fn main() {
    let api_url = "https://sandbox-api.authy.com";
    let api_key = "bf12974d70818a08199d17d5e2bae630";

    let c = Client::new(api_url, api_key);

    let country_code = 1;
    let email = "[email protected]";
    let phone = "949-555-1234";

    let (_, user) = user::create(&c, email, country_code, phone, true).unwrap();
   
    println!("We have a user: {:#?}", user);

    let code = "000000"; // Pretend user has provided a valid code
    match user::verify(&c, user.id, code) {
        Ok(_) => println!("Congrats on being validated!"),
        Err(AuthyError::UnauthorizedKey(e)) => println!("Token provided by the user was wrong"),
        Err(e) => println!("Some server error: {:?}", e),
    };

    // Lets send out a sms token just for fun
    // Must be using a real API key on the production authy server for this to
    // actually send out anything.
    user::sms(&c, user.id, true, Some("login"), Some("Authy documentation example login")).unwrap();
}

‘高级’用法示例

extern crate authy;
use authy::{Client, User};

fn main() {
    let api_url = "https://sandbox-api.authy.com";
    let api_key = "bf12974d70818a08199d17d5e2bae630";

    let c = Client::new(api_url, api_key);

    let country_code = 1;
    let email = "[email protected]";
    let phone = "949-555-1234";

    let mut user = User::create(&c, email, country_code, phone, true).unwrap();

    println!("We have a user: {:#?}", user);

    let code = "000000"; // Pretend user has provided a valid code
    if user.verify(&c, code).unwrap() {
        println!("Congrats on being validated!");
    }

    // Lets send out a sms token just for fun
    // Must be using a real API key on the production authy server for this to
    // actually send out anything.
    user.sms(&c, true, Some("login"), Some("Authy documentation example login")).unwrap();
}

许可证

Authy-rs受以下其中一项许可证的许可:

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的任何有意提交的工作,都应按上述方式双许可,而无需任何附加条款或条件。

请参阅CONTRIBUTING文件以获取更多信息。

依赖关系

~19MB
~423K SLoC