我现在正试图将单片应用程序分离到微服务(专用rails应用程序)并想知道 - 是否有从每个服务移动授权服务的解决方案?
例如,我有6个不同的Rails API服务,其中'knock'gem具有用于验证目的的用户模型。 所有这些服务共享一个用户数据库。
我想用用户模型实现专用服务,但是其他服务如何使用给定令牌验证用户?
此外,我希望能够控制用户可以使用和不能使用的服务。那么应该有AccessRole服务吗?
案件草案:
这里还有一些问题:
答案 0 :(得分:0)
我一直在玩这个问题,并没有任何好的文件解决方案。我要做的是构建一个管理用户和访问控制列表(ACL)的服务。
login [POST]
email
password
这将返回一个JWT令牌,在有效载荷部分中将具有以下信息:
ACL可以是他们拥有的允许角色的数组。这样,当客户端向API发出请求时,响应请求的服务可以内省用户ID(Knock-current_user),然后您可以从有效负载中获取ACL。我觉得很容易添加一个before_action
来验证相应的角色。