Hapi-如何从请求对象访问路由范围

时间:2018-11-15 19:50:56

标签: hapijs

我有一个Hapi API,使用JWT进行身份验证。我的JWT的validate函数的作用是

let validate = (decoded, request, callback) => {
  // decoded.permissions is an array of the users's permissions

我的路线具有如下动态范围;

path: "/{portalId}/somedata",
method: "POST",
config: {
  auth: {
    strategy: "jwt",
    scope: ['user-{params.portalId}']
  }

我想将呼叫限制为仅允许用户的权限数组包含“ user-1”项,但我不知道在我的validate函数中要检查的内容。

我可以在请求中哪里找到当前呼叫的路由范围限制?

或者,我还可以如何构造该方案来满足我的需要?

1 个答案:

答案 0 :(得分:0)

欢迎,我最终以不同的方式解决了问题

我的路线保持不变,但是在验证功能中,我基于解码的userId构造了一个范围字符串数组,然后将其添加到范围中

userPermissions: string[] = buildUserPermissions(userId);
// after they pass any checks
return callback(null, true, {scope: userPermissions, user: user} );