#tokens #jwt #json #web #payload #deserialize #serialization

rwt

Rebel Web Tokens,在形式和功能上类似于JSON Web Tokens

7个不稳定版本

0.4.0 2020年5月29日
0.3.0 2017年5月3日
0.2.3 2016年12月31日
0.2.2 2016年10月21日
0.1.1 2016年6月27日

#1247 in 编码

每月21次下载

MIT/Apache

12KB
189

Rebel Web Tokens

Build Status

出于许多原因,我不是特别喜欢直接在包管理器中搜索任务X相关的第一个库。其中一个很大的原因是,我偶尔会担心所谓的“自杀式标准”。是的,我知道一些人聚在一起,决定插入标准在这里是一种好的做事方式,但万一我不认同呢?

...在这种情况下,我对应该包含在JWT中、告诉我使用什么算法解码它的头部信息这一想法有所保留。我知道算法,伙计们;这是我的应用程序,我是制作令牌的人。请合理一些。

我对现有的Rust JWT实现也不太感冒,因为它们似乎都很有意见,认为我的负载应该是什么样子。这对我来说也不合理,所以我这里没有这样做。实际上,我几乎什么都没做,这一点很容易看出:这个库最初只有118行代码,其中大约有50行是用于将其他库的错误转换为我的错误。

tl;dr: 没有包含大杂烩。

特性

  • 序列化和签名任何实现serde::ser::Serialize的负载
  • 反序列化和验证任何实现serde::de::Deserialize的负载
  • 拒绝浪费位在JWT头部
  • 毫不关心

更新

0.3.0

  • 支持serde 1.0。当然,这意味着我们不再支持低于该版本的任何版本...这也需要一些API更改。
  • 其中之一是,现在FromStrRwt上的实现是为同时实现FromStr的负载实现的,而不是为直接实现Deserialize的负载实现的。
  • 此外,现在 Rwt(T) 直接实现了 SerializeDeserialize,对于任何 T 都执行相同的操作。
  • 已添加文档。
  • 最后,我重新格式化了这个列表,并决定将最新的更改放在顶部。

0.2.3

  • 为了避免潜在的定时攻击向量,我们现在使用 crypto::util::fixed_time_eq 来验证令牌签名。感谢 @Philipp91 提供这一功能。

0.2.1

  • Rwt 结构现在实现了 EqPartialEq。这主要是为了支持测试;对于最终用户来说,这是否有任何实际用途对我来说是个谜。

路线图

允许选择算法吗?

就我个人而言,我认为这几乎没有价值,但听起来很有趣去实现。

许可证

根据您的选择,许可如下

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在作品中的任何贡献,将按上述方式双许可,不附加任何额外条款或条件。

依赖关系

约 5.5MB
约 88K SLoC