5个版本
使用旧的Rust 2015
0.1.4 | 2017年10月15日 |
---|---|
0.1.3 | 2017年10月5日 |
0.1.2 | 2017年9月28日 |
0.1.1 | 2017年9月26日 |
0.1.0 | 2017年9月26日 |
#666 in 身份验证
每月22次下载
52KB
930 行
Amazon Cognito客户端(Rust语言编写)
开发中...
用法
extern crate rusoto_core;
extern crate amazon_cognito_rust;
use rusoto_core::{DefaultCredentialsProvider, default_tls_client, Region};
use amazon_cognito_rust::{CognitoUserSession, CognitoUser, AuthDetails, AuthDelegate, Storage};
struct MyStorage {}
impl Storage for MyStorage {
fn get_item(&self, key: &str) -> Option<String> {
// read from somewhere
None
}
fn set_item(&self, key: &str, val: &str) {
// write to somewhere
}
}
struct MyAuthDelegate {}
impl AuthDelegate for MyAuthDelegate {
fn on_failure(&self, err: &CognitoError) {
println!("failed to authenticate user - {:?}", err);
}
fn on_success(&self, session: &CognitoUserSession, confirmation_necessary: bool) {
println!("ACCESS_TOKEN {}", session.access_token.get_jwt_token());
println!("ID_TOKEN {}", session.id_token.get_jwt_token());
println!("REFRESH_TOKEN {}", session.refresh_token.get_token().to_string());
}
}
fn main() {
let storage = MyStorage {};
let user = CognitoUser::new(default_tls_client().unwrap(), &storage, USER_POOL_ID, CLIENT_ID, Region::UsEast1);
user.authenticate_user(&AuthDetails::new(username, password, BTreeMap::new()), &MyAuthDelegate {}).unwrap();
// to refresh session
// user.refresh_session(refresh_token);
}
状态
- SRP
- 启动身份验证
- 接收设备密钥、访问令牌
- 用户身份验证
- 刷新会话
- 需要新密码
- SMS MFS
- 自定义挑战
- 设备SRP身份验证
依赖项
~16–26MB
~520K SLoC