6个版本

0.8.0 2024年6月26日
0.7.1 2024年5月16日
0.7.0 2023年8月27日
0.5.0 2023年7月24日

#335 in 身份验证

每月46次下载

MIT许可证

45KB
814

CliOAuth

GitHub Repository GitHub Build Status Crates.io docs.rs

CliOAuth(发音为 "klee-oh-awth")是一个用于帮助CLI/桌面应用程序开发者实现OAuth 2.0 带有PKCE的授权代码流的工具。

要了解更多关于Auth Code w/ PKCE的信息,Auth0有一个很好的教程

oauth2 crate提供了一个出色的OAuth2客户端实现。然而,为了支持原生桌面应用程序中的Auth Code with PKCE流,还需要一些额外的组件

  • 启动一个本地Web服务器以监听“授权代码”请求
  • 启动一个带有“授权”链接的浏览器
  • 验证CSRF令牌(即state参数)

CliOAuth以异步和可扩展的方式提供这些组件。它设计用来补充oauth2::Client结构体,但不会干扰其正常使用。

状态

  • 启动一个异步Web服务器以处理授权代码请求
    • 将服务器绑定到任何本地地址和非特权端口
    • 扫描一系列端口以找到第一个开放的端口
  • 打开用户的浏览器以开始授权流程
  • 验证授权结果并将其用于代码交换
  • 自定义浏览器中的服务器响应
    • 授权成功
    • 授权错误

用法

一般用法如下

  1. 配置一个CliOAuthBuilder来构建一个CliOAuth助手
  2. 配置一个oauth2::Client
  3. 启动授权流程
  4. 验证并获取授权代码
  5. 用代码交换令牌

有关更多详细信息,包括示例,请参阅crate文档

依赖项

~17–30MB
~500K SLoC