【发布时间】:2017-07-12 20:24:23
【问题描述】:
我目前正在学习 Auth0 的教程,位于此处:
https://auth0.com/docs/quickstart/spa/react/04-authorization
并且在管理员用户的上下文中努力理解范围的概念。
具体如下...
由于此范围表明用户对数据具有只读访问权限, 可能会认为用户有某种“普通用户” 访问权限。
如果您希望某些用户对同一资源具有写入权限, 因此某种“管理员”访问级别,您可能 考虑引入 write:messages 的范围。
通过在我的控制面板中将 write:messages 作为范围添加到 api,它会被请求并为每个用户设置。
这感觉完全不对。所以我试图通过规则来解决这个问题。
function (user, context, callback) {
if(user.app_metadata.roles.indexOf('admin') > -1) {
console.log(context);
context.accessToken.scope = 'write:messages';
}
callback(null, user, context);
}
在我的 app_metadata 对象中,我为我的管理员用户赋予了管理员角色。此规则有效,现在登录时,开发工具中显示的范围是“write:messages”。
但是,现在初始范围已被删除,例如 'openid read:messages' 等
我到底哪里错了?如果用户是管理员,我想将添加分配给现有范围。
对于范围/声明,这甚至是正确的过程吗?
【问题讨论】:
标签: javascript authentication scope auth0