Hapi - 如何从请求对象访问路由范围
Hapi - how to access route scope from request object
我有一个 Hapi API,使用 JWT 进行身份验证。我的 JWT 的验证函数作为
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' 项时才允许调用,但我不知道在我的验证函数中要检查什么。
请求中哪里可以找到当前调用的路由范围限制?
或者,我还能如何构造此方案以满足我的需要?
好吧,我最终以不同的方式解决了它
我的路线保持不变,但在验证函数中,我根据解码的 userId 构造了一个范围字符串数组,然后将其添加到范围中
userPermissions: string[] = buildUserPermissions(userId);
// after they pass any checks
return callback(null, true, {scope: userPermissions, user: user} );
我有一个 Hapi API,使用 JWT 进行身份验证。我的 JWT 的验证函数作为
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' 项时才允许调用,但我不知道在我的验证函数中要检查什么。
请求中哪里可以找到当前调用的路由范围限制?
或者,我还能如何构造此方案以满足我的需要?
好吧,我最终以不同的方式解决了它
我的路线保持不变,但在验证函数中,我根据解码的 userId 构造了一个范围字符串数组,然后将其添加到范围中
userPermissions: string[] = buildUserPermissions(userId);
// after they pass any checks
return callback(null, true, {scope: userPermissions, user: user} );