9个不稳定版本 (3个破坏性更新)
0.4.1 | 2024年7月13日 |
---|---|
0.4.0 | 2024年7月4日 |
0.3.1 | 2024年7月1日 |
0.2.2 | 2024年7月1日 |
0.1.1 | 2024年6月29日 |
#124 在 过程宏 中
每月779次下载
39KB
98 行
tlns-google-oauth2
一个带有内置范围枚举的Google OAuth2服务器端认证,提供额外的类型安全。
生成范围枚举(仅针对进程宏库部分)
前往 Google OAuth2 范围列表,并从文档底部表格的第一行开始复制到最后一行。 然后将所有这些粘贴到 info.txt
并构建库,它将提供所有可能的范围!
用法 (crate::grouped_scopes
)
use tlns_google_oauth2::GoogleOAuth2Client as Client;
use tlns_google_oauth2::scopes;
let client = Client::new("CLIENT_ID".to_string(), "CLIENT_SECRET".to_string(), "https://127.0.0.1:8080/callback".to_string()).expect("Failed to build client");
let auth = client.authorize_url(None, vec![&scopes::GoogleOAuth2APIv2::AuthUserinfoProfile]).unwrap();
let url = auth.0;
let csrf_token = auth.1;
let scopes = auth.2;
// ... Callback codes here (You can't save states in oauth2 crate for some reasons :( )
let code = "...";
let token = client.get_token(code.to_string()).await.unwrap();
// Do request stuff
用法 (crate::scopes::Scopes
)
use tlns_google_oauth2::GoogleOAuth2Client as Client;
use tlns_google_oauth2::scopes;
let client = Client::new("CLIENT_ID".to_string(), "CLIENT_SECRET".to_string(), "https://127.0.0.1:8080/callback".to_string()).expect("Failed to build client");
let auth = client.authorize_url(None, vec![&scopes::Scopes::AuthUserinfoProfile]).unwrap();
let url = auth.0;
let csrf_token = auth.1;
let scopes = auth.2;
// ... Callback codes here (You can't save states in oauth2 crate for some reasons :( )
let code = "...";
let token = client.get_token(code.to_string()).await.unwrap();
// Do request stuff
致谢
感谢 heapunderfl0w
提出进程宏的想法,而不是糟糕的 Jinja2 实现!
依赖
~8–22MB
~335K SLoC