我想在 Meteor 1.5 方法中实现授权。 这些方法将由某些客户端通过 HTTP 终结点调用,而不是由应用程序本身调用。
授权需要处理不同的角色,如管理员、版主(为此我正在使用alanning:roles
包)。 为了授权HTTP请求,我正在使用dispatch:run-as-user
包。
是否有一种正确的方法来实现某种对每个方法都相同的中间件,通过检查当前用户是否具有调用该方法的适当角色?
还是有更好的方法来授权流星方法?
是否有一种正确的方法来实现某种中间件,通过检查当前用户是否具有调用该方法的适当角色,该中间件对每个方法的工作方式相同?
是的,有一种复杂的方法来声明允许此行为的方法。请参阅 https://guide.meteor.com/methods.html。
这将根据您的需求进行过度设计。授权方法内部调用的最佳中间件是通过在方法主体中调用this.userId
来使用的,它代表了meteor
领域中最优雅的解决方案。像往常一样在每个方法主体中使用alanning:roles
。然后,要实现:
通过 HTTP 终结点的客户端
使用类似于cfs:http-methods
的包来实现此目的,请使用Accounts
包进行授权。客户端 HTTP 调用需要一个值等于Accounts._storedLoginToken()
的?token
查询参数。