#rocket #access-control #cookies #server-client

nightly cosmodrome

为您的rocket应用程序提供访问控制

1个不稳定版本

新版本 0.2.0 2024年8月23日

#21 in #cookies

MIT/Apache

32KB
695

rocket提供的认证和授权库。

介绍和目的

cosmodrome提供了一个可定制和可扩展的方式,以保护您的rocket应用程序免受未经授权的资源/路由访问。此crate包含服务器和客户端使用所需的数据结构。

默认情况下,已启用两个功能serverclient,这是在服务器端使用此库所必需的。

客户端使用

对于客户端使用(例如WASM),请使用default-features = falsefeatures = ["client"]。这将仅包含Ticket模型。

它是如何工作的?

cosmodrome从广义上遵循使用飞机的登机旅行过程。要进入飞机,您需要通过大门。这个大门能够登录和注销我们的应用程序。如果您想购买[Ticket],则需要有效的护照。这个护照包含有关您的详细信息,通常被称为“账户”。您的应用程序需要一个护照注册,它包含所有护照/账户。为了成功通过大门,您需要有效的护照以及您之前购买的[Ticket]。在我们的情况下,[Ticket]是由一个id和一个secret的组合,其中id护照的id匹配。现在,大门可以验证您的[Ticket]是否正确,如果成功,将提供登机牌,允许访问您需要达到最终目的地的机场的所有飞机(即webservice路由)。

附加信息

为了在旅行期间验证您确实拥有正确的登机牌,您需要将其存储在通常为您的随身行李的存储设备中。cosmodrome内置了对承载令牌以及cookie的支持。两者都包含一个JWT有效负载,其中包含您的护照。您也可以通过实现BoardingPassStorage来自定义[认证类型]和自定义有效负载。

功能

目前提供以下方法

  • 承载
  • cookie

这两种方法都使用JWT作为有效负载。

示例

示例提供在存储库中的examples文件夹。

致谢

感谢标志图像的创作者

Cosmodrome图标由Kalashnyk - Flaticon创建 - https://www.flaticon.com/free-icons/cosmodrome

依赖关系

~1–34MB
~530K SLoC