我正在考虑确保API的安全,并被推荐使用基于JWT的方法,尽管在在线阅读并遵循了几个教程后,我比以前更困惑了。所以这里是我收集到的: JWT是一个标准,有几个implementations...so,我必须为我的API选择一个实现是对的吗?
如果是这样的话,有没有我可以使用的开箱即用的实现,这是业界推荐的,以避免重复发明轮子?作为一名.net开发人员,我更可能使用Asp.Net Identity,它可以发布和验证JWT,我相信(如果我错了,请纠正我)。这是最好的方法吗?对于任何开源项目,though...what似乎都相当苛刻?
我真的不想用我自己的implementation...looking来获得关于这个话题的任何建议。
发布于 2017-03-06 14:25:19
JWT只是一个标准的RFC 75 19,有很多实现。
有关实现的列表,请查看https://jwt.io/ (您可以根据语言进行过滤),有三种.net实现,因此您不需要(也不应该)使用自己的实现。
签名JWT (JWS)简介
签名的JWT包含一个Base64 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来验证。
节选自Getting started with jwt - Signed JWT (JWS)。最初的作者是Nate Barbettini。可以在contributor page上找到属性详细信息。源代码是在CC BY-SA 3.0下许可的,可以在Documentation archive中找到。参考主题ID: 5213,示例ID: 18559。
https://stackoverflow.com/questions/42604410
复制相似问题