#bindings #oauth2 #token #url #oauth #curl #secret

oauth-api

用于交换OAuth 2令牌的绑定,依赖项已更新

3个版本

使用旧的Rust 2015

0.2.2 2016年6月22日
0.2.1 2016年6月22日
0.2.0 2016年6月22日

#53 in #curl

MIT/Apache

14KB
257 代码行

与curl 0.3的oauth2

oauth2-rs的分支 oauth2-rs

  • 但是,我支持依赖项的最新版本,包括curl版本 curl 0.3.0 和url版本 1.1.1
  • 接口与基本仓库完全相同
  • 文档请参阅 此处

例如,请参考此处示例

extern crate rustc_serialize;
extern crate oauth-api;

use rustc_serialize::json;
use std::fs::File;
use std::io::Read;
/* Secrets.json sample contents:
{
  "client_id": "abcde",
  "client_secret": "efgab",
  "auth_url": "https://github.com/login/oauth/authorize",
  "token_url": "https://github.com/login/oauth/access_token"
}
*/
let mut f = File::open("secrets.json").unwrap();
let mut read_str = String::new();
let _ = f.read_to_string(&mut read_str);
let sec : Secret = json::decode(&read_str).unwrap();

let mut conf = oauth2::Config::new(
    &sec.client_id,
    &sec.client_secret,
    &sec.auth_url,
    &sec.token_url
);
conf.scopes = vec!["repo".to_owned()];
let url = conf.authorize_url("v0.0.1 gitbot".to_owned());
println!("please visit this url: {}", url);

let mut user_code = String::new();
let _ = std::io::stdin().read_line(&mut user_code).unwrap();
user_code.pop();
let tok = conf.exchange(user_code).unwrap();
println!("access code is: {}", tok.access_token);

贡献

  • 我乐意接受所有PR
  • 请随时提交任何问题和/或功能请求

依赖项

~10MB
~247K SLoC