1个不稳定版本
新版本 0.2.0 | 2024年8月23日 |
---|
#21 in #cookies
32KB
695 行
为rocket提供的认证和授权库。
介绍和目的
cosmodrome
提供了一个可定制和可扩展的方式,以保护您的rocket应用程序免受未经授权的资源/路由访问。此crate包含服务器和客户端使用所需的数据结构。
默认情况下,已启用两个功能server
和client
,这是在服务器端使用此库所必需的。
客户端使用
对于客户端使用(例如WASM),请使用default-features = false
和features = ["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