我正在查看一些hapi路由的auth配置选项。我理解范围是如何工作的 - 您可以将路由范围设置为'admin'
,这意味着用户的凭据必须具有匹配的范围......但是entity
的目的是什么?
以下是文档:
当我在路线上将实体设置为'user'
时,我收到此错误:
"message": "Application credentials cannot be used on a user endpoint"
这让我相信我的auth插件正在将我的实体设置为某个地方'app'
?作为参考,我使用的是hapi-auth-jwt。
答案 0 :(得分:0)
您可以告诉hapi-auth-jwt
验证请求在验证程序函数中具有哪个实体:
var validate = function (decodedToken, callback) {
...
credentials = {
entity: 'user',
...
};
return callback(error, authorized, credentials)
};
有关凭据对象here的更多信息。
答案 1 :(得分:0)
虽然这是一篇旧文章,但如果这可以帮助其他人,那么答案就是身份验证被视为代表最终用户,如果凭据< / em> object包含属性 user 。
在您的情况下,如果凭据对象不包含此类用户属性,则会将其视为代表应用程序的身份验证,因此访问控制失败。您的auth.access.entity
定义使您的端点成为用户端点,但您的凭据不被视为用户凭据,而是应用程序凭据。
如果您的凭据对象包含其他属性中的用户身份(例如 sub 或 email ),您可能希望将其复制到新属性身份验证插件中的用户或用作配置验证功能的一部分。