我们正在使用Angular和Spring开发应用程序。我们从后端公开了一些REST Web服务。
我知道强烈建议REST Web服务应该是无状态和无会话的,因此我们正在开发无状态和无会话的Web服务。
我们如何保护Web服务免遭未经授权的客户端调用。因此,我希望仅从Angular应用程序中调用这些服务。
我知道阻止来自Selenium之类的工具的调用几乎是不可能的,但是没关系,因为客户端也是Angular应用。
答案 0 :(得分:1)
从Angular到服务器的每个调用都需要在上一步中将JWT令牌作为Authorization标头发送。在Angular中,您可以使用HttpInterceptor来实现这种共享逻辑,而不是将其全部放置在Angular服务层中。
您的后端必须检查每个JWT令牌的存在 单个请求(Spring安全过滤器),使用JWTUtil(io.jsonwebtoken)java验证令牌头和签名 库同时提取JWT主体以了解哪个用户正在请求 数据,也许只是根据用户的角色(授权)返回相关数据