在 api 中识别用户角色的最佳方法

问题描述 投票:0回答:1

我目前正在构建一个 API,用户可以在其中公开访问资源(包括他们自己的资源),并在仪表板中进行管理。

本着使用单一资源端点来防止代码重复的精神,如何识别 API 上的登录用户从仪表板或公开访问其资源?

或者在这种情况下我别无选择,只能构建单独的端点以供管理和公共使用?

rest http api-design
1个回答
0
投票

我将用户角色或权限添加到 JWT 令牌,并在执行它们之前在 Rest 方法中检查它们。

以 Spring Boot Rest 实现为例:

@PreAuthorize("hasAnyAuthority('SYSTEM_ADMIN','CUSTOMER_ADMIN')") @GetMapping("/{customerId}")

如果令牌没有 SYSTEM_ADMIN 或 CUSTOMER_ADMIN 角色,则会产生错误。

© www.soinside.com 2019 - 2024. All rights reserved.