2017-09-01 80 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()