我目前正在构建一个 API,用户可以在其中公开访问资源(包括他们自己的资源),并在仪表板中进行管理。
本着使用单一资源端点来防止代码重复的精神,如何识别 API 上的登录用户从仪表板或公开访问其资源?
或者在这种情况下我别无选择,只能构建单独的端点以供管理和公共使用?
我将用户角色或权限添加到 JWT 令牌,并在执行它们之前在 Rest 方法中检查它们。
以 Spring Boot Rest 实现为例:
@PreAuthorize("hasAnyAuthority('SYSTEM_ADMIN','CUSTOMER_ADMIN')") @GetMapping("/{customerId}")
如果令牌没有 SYSTEM_ADMIN 或 CUSTOMER_ADMIN 角色,则会产生错误。