spring cloud oauth 使用的一个问题
ClientDetailsServiceConfigurer 中设置了从数据库中设置 clients oauth_client_details 表中数据如下
表中设置 resource_ids 有 user-server,shop-server
每个服务有不同的 resourceId ,导致有一个问题是
在新增新的服务(im-server)的时候,已经签发的 token 中没有新增服务的 resourceId ,导致这部分用户访问新的服务时提示错误
{
"error": "access_denied",
"error_description": "Invalid token does not contain resource id (im-server)"
}
这个 resourceIds 是不是不应该这样设置?
1
leaves615 2023-01-08 14:58:20 +08:00
oauth 的 resourceId 是用于逻辑资源权限管理。 我认为不应该被用于微服务程序标记。
如果一定要这样的话,新上线一个微服务就主动注销现有 token ,使之失效。强制重新获取。 |
2
xuanbg 2023-01-08 23:30:13 +08:00
自己写个 OAuth 服务吧,这个不像注册中心、网关、链路追踪这些,是第一层次的抽象。OAuth 涉及到了用户管理,是做不到完全抽象的。
|