【发布时间】:2021-10-13 16:10:36
【问题描述】:
我正在实现一个基本的登录应用程序。特点如下:
- 成功登录后,应该会出现一个显示名称、用户名和角色(经理/用户)的欢迎页面。
- 如果用户具有管理员角色,欢迎页面将包含访问受限网页的链接。
- 此受限网页只能由经理角色访问,其他用户角色不能访问。
- 实现注销功能。
- 如果用户 ID 或密码无效,我应该留在登录页面并显示错误消息“用户 ID 或密码无效”。
- 所有数据都应存储在数据库中。
- 应用程序应演示 MVC 模式...
我的架构:
我在前端使用 react js。我使用带有基于角色的授权的spring security构建后端,其中某些角色可以访问某些url。我已经使用邮递员在后端进行了测试,我尝试访问/restricted,如果我使用 mvcMatchers() 使用 ROLE-USER 而不是 ROLE-MANAGER,它会响应 401。现在令人困惑的部分是前端
我注意到我可以在前端进行所有必要的验证。我什至不需要在后端执行 mvcMatcher(),因为我只需加载 userdetails 和角色并要求 react 为我验证!见鬼,我什至不需要使用基于角色的授权。我只需要在名为“role”的用户表中添加额外的字段,并使用它来检查项目 3 并在项目 1 上显示角色。我只需要 1 个表,而不是 3。我什至可以要求响应重定向到 /login 如果用户试图在没有登录的情况下访问 /welcome,或者如果用户角色是 USER,则禁用 /unauthorised。
但我对这种方式感觉不对。我很困惑。
一个。最好的方法是什么?
b.基于角色的是否仅适用于rest-api服务,而不适用于全栈应用程序?从我看到的前端可以做所有的验证
【问题讨论】:
标签: spring-security role-base-authorization