#oauth2 #策略 #认证 #护照

passport-strategies

在 oauth2-rs 之上的轻量级包装,简化 OAuth 2.0 认证

6 个版本

0.1.11 2024 年 8 月 11 日
0.1.10 2024 年 8 月 10 日
0.1.5 2024 年 2 月 28 日
0.1.2 2024 年 1 月 21 日

网页编程 中排名 #591

Download history 5/week @ 2024-07-01 121/week @ 2024-07-29 176/week @ 2024-08-05 69/week @ 2024-08-12

每月下载量 366

MIT 许可证

31KB
520

护照策略

使用 OAuth 2.0 API 对 Discord、42、Facebook、Reddit、Google、Microsoft 和 Github 进行认证的护照策略。该库是 oauth2 的轻量级包装,简化了认证。该模块允许您在应用程序中与上述提到的提供者进行认证。通过连接到 passport-strategies(Discord、Microsoft、Google、42、Reddit、Github 和 Facebook),认证可以轻松且无干扰地集成到任何 Rust 应用程序或 Rust 框架中。

添加 passport-strategies

passport-strategies = { version = "0.1.11" }

用法

创建应用程序

在开始使用 passport-strategies 之前,您必须在与相应提供者注册一个应用程序。如果您尚未这样做,您可以在 FacebookGoogleGithubMicrosoftRedditDiscord42 创建一个新应用程序。您的应用程序将获得一个应用 ID 和应用密钥,这些密钥需要提供给策略。您还需要配置一个与您应用程序中的路由相匹配的重定向 URI。

配置策略

passport-strategies 使用所需的提供者账户和 OAuth 2.0 令牌进行用户认证。在创建应用程序时获得的 app ID(或在某些情况下客户端 ID)、重定向 URL客户端密钥 作为创建策略时的要求提供。您不需要提供授权 URL 和令牌 URL。与 passportjs 不同,策略不需要验证回调,该回调接收访问令牌和可选的刷新令牌,以及包含已认证用户提供者配置文件的配置文件。相反,配置文件、访问令牌和可选的刷新令牌被返回以完成认证。

示例(Microsoft)

 use passport_strategies::strategies::MicrosoftStrategy;
 use passport_strategies::passport::Passport;

 let passport = Passport::default()
        .redirect_urls(passport_strategies::passport::Redirect::new(
            "https://127.0.0.1:<redirect_url_port>/signup",
            "https://127.0.0.1:<redirect_url_port>/success",
        )?)
        .strategize(
            Choice::Microsoft,
            MicrosoftStrategy::new(
                "<client_id>",
                "<client_secret>",
                &["user.read"],
                "<redirect_url>",
            ),
        )?;

有关更多示例,请参阅 此处

新增功能

  1. 支持 axum 网页框架。
  2. Reddit 策略集成。
  3. 删除前版本中当多个用户同时尝试认证时的逻辑错误。
  4. 清除不再需要的验证器从内存中

依赖关系

~6–18MB
~278K SLoC