#github #auth-token #command-line #authenticate #scope #io #authenticator

github_auth

通过命令行使用GitHub进行身份验证

9个版本 (破坏性)

0.8.0 2020年9月27日
0.7.1 2018年10月11日
0.7.0 2018年8月30日
0.6.0 2018年8月30日
0.1.1 2018年5月3日

#569 in 身份验证


用于 2 crates

MIT/Apache

28KB
222 代码行

github_auth

crates.io version build status downloads docs.rs docs

通过命令行使用GitHub进行身份验证。缓存身份验证令牌,以便未来交互正常工作。

用法

extern crate github_auth;

use github_auth::{Authenticator, Scope};

let auth = Authenticator::builder("github_auth main example".into())
  .scope(Scope::PublicRepo)
  .build();

let token = auth.auth().unwrap();
println!("{:?}", token);

let location = auth.location();
println!("Token stored at: {:?}", location);

示例输出

此对话框仅用于生成有效令牌。一旦创建了有效令牌,它将不再显示。

GitHub username: my_name
GitHub password:
GitHub OTP (optional): 5678

使用令牌进行身份验证

一旦您获得了访问令牌,您可以使用它进行身份验证。以下是如何使用reqwest crate进行身份验证的示例。

extern crate github_auth;
extern crate reqwest;

use github_auth::Authenticator;
use reqwest::{
  header::{Authorization, Headers, UserAgent},
  Client,
};

let auth = Authenticator::new("my_example_app");
let token = auth.auth().unwrap();

let mut headers = Headers::new();
headers.set(Authorization(format!("token {}", token.as_str())).to_owned());
headers.set(UserAgent::new("my_app"));

let url = "https://api.github.com/user";
let mut res = client.get(&url).headers(headers).send()?;
println!("{:?}", res.status());

安装

$ cargo add github_auth

许可证

MIT OR Apache-2.0

依赖项

~7–19MB
~264K SLoC