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
每月下载量 366
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 之前,您必须在与相应提供者注册一个应用程序。如果您尚未这样做,您可以在 Facebook
、Google
、Github
、Microsoft
、Reddit
、Discord
和 42
创建一个新应用程序。您的应用程序将获得一个应用 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>",
),
)?;
有关更多示例,请参阅 此处
新增功能
- 支持 axum 网页框架。
- Reddit 策略集成。
- 删除前版本中当多个用户同时尝试认证时的逻辑错误。
- 清除不再需要的验证器从内存中
依赖关系
~6–18MB
~278K SLoC