【发布时间】:2014-07-11 14:05:54
【问题描述】:
我正在开发一个使用 Java 和 AngularJS 开发的 Web 应用程序,并选择实现令牌身份验证和授权。 出于练习的目的,我已经将凭据发送到服务器,生成一个随机令牌存储它并将其发送回客户端。 在对服务器的每个请求中,我都将令牌附加到标头中,并且效果很好。 对于身份验证的观点是完美的,不需要更多。
但是,我现在想跟踪用户类型(管理员、普通用户...),以及它的 id 或任何其他唯一字段;据我了解,我必须在登录操作期间发送回客户端的令牌中对其进行加密。对吗?
您是否使用过任何 JWT 库并且可以生成、加密和解密此类令牌? 非常感谢您提供指向该库的 API 和 Maven 依赖项的链接。
谢谢
【问题讨论】:
-
如果要存储在令牌中的信息不敏感,则不一定需要加密令牌。用户 ID 和权限是秘密的吗?可能没有。您需要确保只有您可以创建有效的令牌。 jwt 方法是使用 Hmac 和秘密签名密钥对令牌进行数字签名,以确保您能够验证其完整性和来源。我在下面的回答提供了一个库和示例。
-
嗨..我也在尝试实现这个 JWT 库,我在服务器端 (Java) 做了,但是如何在我的前端 (javascript) 解码?你用哪个库在 angularjs 部分解码它?
-
蒂亚戈,我没有。流程如下:用户登录 -> 数据发送到服务器 -> 令牌创建 -> 发送回客户端。每当向服务器发出请求时,令牌都会附加在标头中(我为此实现了一个拦截器)。验证在服务器上完成,并发回正确的响应(如果它被授权或未授权)。
-
处理 JWT 时有用的页面:jwt.io
-
@MariusManastireanu 您从 Angular 发送的令牌与您从服务器收到的令牌相同?我正在做同样的事情...请帮助