2017-09-01 83 views
0

我想在Meteor 1.5方法中實現授權。這些方法將由某些客戶端通過HTTP端點調用,而不是由應用程序本身調用。流星方法中間件授權

授權要求處理不同的角色,如管理員,主持人(爲此我使用alanning:roles包)。 爲了授權HTTP請求我使用dispatch:run-as-user包。

通過檢查當前用戶是否有適當的角色來調用方法,是否有適當的方法來實現某種中間件,這些中間件對於每種方法都是一樣的?

或者是否有更好的方法來授權流星方法?

回答

0

有沒有一種合適的方法來實現某種中間件,這種中間件對於每種方法來說都是一樣的,通過檢查當前用戶是否有適當的角色來調用方法?

是的,有一種複雜的方法來聲明允許這種行爲的方法。見https://guide.meteor.com/methods.html

這將過度設計滿足您的需求。通過在方法體內調用this.userId來使用用於在方法內部授權調用的最佳中間件,並且它代表了meteor Universe中最優雅的解決方案。在每個方法體內按慣例使用alanning:roles。然後,來實現:

客戶端通過HTTP端點

使用包像cfs:http-methods這樣使用Accounts包授權來實現。客戶端HTTP調用期望?token查詢參數的值等於Accounts._storedLoginToken()