我开发一个应用程序将使用AngularJS作为前端,与后端的REST服务进行通信,实现为J2EE / Spring。后端服务通过基于角色的授权得到保护。
在应用程序的前端,我希望UI只允许用户执行授权的操作。代码应根据用户的权限显示/隐藏元素。
例如,您可以列出系统用户的功能。如果您拥有admin_users权限,则可以编辑任何用户的信息,包括他们的角色。如果不这样做,服务器将不允许更新操作。用户界面也应该通过禁用或隐藏编辑按钮来反映这一点。
将用户授权从后端传递到前端的最佳方法是什么?例如,我可以提供额外的服务,返回当前用户的权限。
答案 0 :(得分:0)
我建议你看看(Json Web Token)JWT。它会提供一个随机复杂的密钥(JWT Secret)来强制强制令牌非常困难。
访问https://jwt.io了解详情。
答案 1 :(得分:0)
您可以在服务器上实现OPTIONS
处理程序,该处理程序返回当前资源和当前登录用户的允许方法列表。例如,假设您有以下API:
抓取用户:
GET /user/1
修改用户:
PATCH /user/1
作为管理员
请求:
OPTIONS /user/1
回复:
Allow: GET, PATCH
作为用户
请求:
OPTIONS /user/1
回复:
Allow: GET
然后,您可以在客户端应用中推断选项响应的含义,并相应地显示/隐藏操作。
资源: