JWT and implementations



我正在考虑确保API,并推荐基于JWT的方法,尽管在线阅读并遵循几个教程后,我比以前更加困惑。因此,这是我收集的:JWT是标准的,有几个实现...因此,我必须选择用于API的实现吗?

如果可以的话,我可以使用开箱即用的实现,这些实施建议避免重新发明方向盘?作为.NET开发人员,我更有可能使用Asp.Net Identity,它可以发出并验证我相信的JWT(如果我错了,请纠正我)。那是最好的方法吗?看起来很重...任何开源项目呢?

我真的不想滚动自己的实施...寻找有关该主题的任何建议。

JWT只是标准RFC 75 19,具有许多实现。

有关实施列表,请查看https://jwt.io/(您可以按语言过滤),有三个.NET实现,因此您无需(也不应该)自己滚动。<</p>

签名JWT简介(JWS)

签名的JWT包括一个基本64 URL安全编码签名作为第三个组件。用于生成签名的算法在标题中指示。

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
.eyJzdWIiOiJKb2huIERvZSIsImFkbWluIjp0cnVlLCJpYXQiOjE0NzAzNTM5OTQsImV4cCI6MTQ3MDM1NzYyNywianRpIjoiNmU0MDRiYTgtZjg4NS00ZDVmLWJmYTItZTNmNWEwODM4MGE0In0
.7CfBdVP4uKsb0cogYepCvMLm8rcpjBYW1XZzA-a5e44

标题

{
  "typ": "JWT",
  "alg": "HS256"
}

此JWT与HMAC-SHA256算法签名,因此alg: HS256

有效载荷

{
  "sub": "John Doe",
  "admin": true,
  "iat": 1470353994,
  "exp": 1470357627,
  "jti": "6e404ba8-f885-4d5f-bfa2-e3f5a08380a4"
}

可以使用UTF-8秘密notsosecret

来验证此JWT

从JWT开始的摘录 - 签名JWT(JWS)。最初的作者是内特·贝贝蒂尼(Nate Barbettini)。归因细节可以在贡献者页面上找到。该来源是根据CC BY-SA 3.0许可的,可以在文档档案中找到。参考主题ID:5213和示例ID:18559。

最新更新