8个版本
0.4.6 | 2024年7月25日 |
---|---|
0.4.5 | 2024年6月17日 |
0.4.4 | 2024年3月21日 |
0.4.2 | 2024年2月9日 |
0.1.0 | 2020年12月16日 |
在 认证 中排名 134
每月下载量 69,220
在 48 个crates(直接使用10个)中使用
33KB
653 行
cargo-credential
此包是一个辅助编写Cargo凭证辅助程序的库,它提供了一个接口来存储用于授权访问如https://crates.io/之类的注册表的令牌。
关于凭证过程的文档可以在https://doc.rust-lang.net.cn/nightly/cargo/reference/credential-provider-protocol.html找到
示例实现可以在https://github.com/rust-lang/cargo/tree/master/credential找到
用法
使用此依赖创建Cargo项目
# Add this to your Cargo.toml:
[dependencies]
cargo-credential = "0.4"
然后包含一个实现Credential
trait的main.rs
二进制文件,并调用将调用该trait适当方法的main
函数
// src/main.rs
use cargo_credential::{Credential, Error};
struct MyCredential;
impl Credential for MyCredential {
/// implement trait methods here...
}
fn main() {
cargo_credential::main(MyCredential);
}
lib.rs
:
编写Cargo凭证提供者辅助库。
凭证过程应该有一个实现Credential
trait的struct
。应使用该结构的实例调用main
函数,例如
fn main() {
cargo_credential::main(MyCredential);
}
在perform
函数中,stdin和stdout将被重新连接到活动控制台。这允许凭证提供者根据需要进行交互。
错误处理
错误::UrlNotSupported
凭证提供者可能只支持一些注册表URL。如果这种情况发生,并且提供了一个不支持的索引URL,则应返回Error::UrlNotSupported
。Cargo可能会尝试其他凭证提供者。
错误::NotFound
当尝试执行Action::Get
或Action::Logout
操作时,如果找不到凭证,提供者应返回Error::NotFound
。Cargo可能会尝试其他凭证提供者。
错误::OperationNotSupported
凭证提供者可能不支持所有操作。例如,如果提供者只支持Action::Get
,则对于所有其他请求应返回Error::OperationNotSupported
。
错误::Other
所有其他错误都放在这里。错误将在Cargo中显示给用户,包括使用std::error::Error::source
显示的完整错误链。
Example
依赖项
~2-11MB
~110K SLoC