2015-03-24 125 views
1

我正在使用jwt和NodeJS来验证令牌。目前,我签署了观众,IP和客户端的有效载荷。什么信息要在身份验证令牌上登录

我也把用户的​​放在有效载荷上,以便在后续的请求中,我可以找到用户使用​​;​​的示例是bd262477-8b93-4f2c-9dc9-175edf6e0d14

这是不好还是安全问题?我想我要问的是你应该把什么信息放在有效载荷上?​​好还是坏?

有人可以提供给我一个链接,解释为什么(或为什么不)存在您在令牌中包含的安全问题?

回答

1

应对整个令牌进行签名,以保护令牌正文中的所有声明。

关于您可以安全地放入令牌中:它取决于令牌将存储在“静止”的位置。但一般来说,除非您要加密令牌,否则一般而言,您不应将敏感信息放入令牌中(除了签名外,加密是第二步)。

我在Stormpath工作,我们有几篇关于该主题的文章:

Use JWT the Right Way!

Where to Store Your JWTs - Cookies vs HTML5 Web Storage

Token Based Authentication for Single Page Apps (SPAs)

希望这有助于!

+0

感谢您的链接,我会给他们一个阅读。所以如果我把用户'guid'(而不是'id'),这是一个安全问题?我这样做是为了在随后的请求中,我可以确定哪个用户正在拨打电话。或者,我可以将令牌存储在数据库中以及我可能需要的任何可识别信息。在每一次通话中,我都会读取令牌,在数据库中查找查询并从那里开始。哪种方法更好? – Kousha 2015-03-26 20:23:51

+0

在令牌中放置用户标识完全没问题,只要它不透明(它实际上不会告诉您任何有关用户的信息)并且它足够随机(换句话说,不是每个用户的递增数字)。另外:JWT约定是对这个ID使用'sub'声明,也就是token的“subject” – robertjd 2015-03-26 22:35:51

+0

完美,谢谢你的提供。是的,我使用的是“id”,这是一个随机字符串! – Kousha 2015-03-26 23:11:33