[英]Rails: Microservice architecture with dedicated authorization service and app services using Knock (JWT)
我現在正試圖將單片應用程序分離到微服務(專用rails應用程序)並想知道 - 是否有從每個服務移動授權服務的解決方案?
例如,我有6個不同的Rails API服務,其中'knock'gem具有用於驗證目的的用戶模型。 所有這些服務共享一個用戶數據庫。
我想用用戶模型實現專用服務,但是其他服務如何用給定的令牌驗證用戶?
此外,我希望能夠控制用戶可以使用和不能使用的服務。 那么應該有AccessRole服務嗎?
案件草案:
這里還有一些問題:
我一直在玩這個問題,並沒有任何好的文檔解決方案。 我要做的是構建一個管理用戶和訪問控制列表(ACL)的服務。
login [POST] email password
這將返回一個JWT令牌,在有效負載部分中將具有以下信息:
ACL可以是他們擁有的允許角色的數組。 這樣,當客戶端向API發出請求時,響應請求的服務可以內省用戶ID(Knock-current_user),然后您可以從有效負載中獲取ACL。 我認為很容易添加一個before_action
來驗證適當的角色。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.