微服务应该拥有自己的数据,没有共享数据库。 令牌包括用户ID,蛤s,但声明仅是身份验证,而不是授权。 因此,如果我有一个独立应用程序,则可以检查用户是否属于某个组(声明),如果是,则可以从数据库中获取该组的功能。 但是,如果我有一个微服务,我将无法做到,我不想将此授权信息复制到所有微服务中。
例如,所有用户都属于一个团队,而应用程序中服务中的所有内容均属于一个团队(例如,“ A”团队的成员有权访问“ A”团队的论坛,“ A”团队的画廊等等
即使我将团队存储在声明中(我也不想要,因为在令牌仍然存在的情况下成员身份可能会发生变化),我仍需要在所有微服务中拥有团队数据。但这听起来很糟糕。
那我该怎么办?
谢谢
答案 0 :(得分:0)
您应通过微服务链将请求令牌中的用户令牌(从声明中向上读取)传递给每个微服务,以便每个微服务仅需验证令牌即可确定用户已成功通过身份验证,并且在微服务中执行了权限执行本身。