1 个不稳定版本

使用旧Rust 2015

0.1.0 2017年9月11日

#token-stream中排名第29

MIT许可证

155KB
3K SLoC

gauthz 构建状态 覆盖率状态

通过rust实现google api服务认证

文档

安装

将以下内容添加到项目的Cargo.toml文件中

[dependencies]
gauthz = "0.1"

用法

典型使用需要配置了tokio反应器处理器的gauthz::Tokens,以及表示预期API使用访问级别的gauthz::Credentialsgauthz::Scope

注意,您的hyper::Client 必须 配置TLS支持。Hyper不提供开箱即用的TLS支持,但有多个crate提供了支持。

gauthz::Tokens实例提供两个接口:返回一个解析为访问令牌的Futureget,以及在当前令牌过期后(通常是)解析为新令牌的Stream。Stream接口旨在用于长时间运行的应用程序,这些应用程序不可避免地需要超过一个小时的访问。

extern crate futures;
extern crate gauthz;
extern crate tokio_core;

use futures::Future;
use tokio_core::reactor::Core;

use gauthz::{Credentials, Result, Scope, Tokens};
use gauthz::error::ErrorKind;

fn run() -> Result<String> {
    let mut core = Core::new()?;
    let tokens = Tokens::new(
        &core.handle(),
        Credentials::default().unwrap(),
        vec![Scope::CloudPlatform],
    );
    core.run(
        tokens.get().map(
            |t| t.value().to_owned()
        )
    )
}

fn main() {
    match run() {
        Ok(ok) => println!("{}", ok),
        Err(err) => println!("{}", err),
    }
}

这些令牌可以用作具有相应作用域的Google API的HTTP头中的Authorization,以进行认证。

发音

gawthz

Doug Tangren (softprops) 2017

依赖

~13–23MB
~335K SLoC