使用用户模型环回时出现401错误
Getting 401 error in loopback with User Model
我在另一个DB中有超过5k个用户的列表,并且我想迁移环回DB中的所有用户,存在许多重复的用户,因此我正在检查用户是否存在,然后我正在更新用户,否则我正在创建新用户。我已经为此写了一个脚本。它的工作很好,但在更新第一个用户后,环回开始抛出错误401未经授权,如果我执行GET用户详细信息API。即使我已经允许未经身份验证的用户访问更新,创建与ACL属性,但它不工作与此以及。
我已经扩展了User模型。
谁能给点光?帮助将不胜感激!
谢谢
LoopBack的默认acl比您定义的更具体,因此您的acl在结束时不起作用。@authenticated和@unauthenticated ALLOW规则没有优先于DENY all规则。但是自定义角色可以,并且在框架中使用自定义ADMINISTRATOR
角色是正确的方法。
- 需要为指定用户创建Role
- 使用角色映射模型将该角色映射给用户。
步骤1和步骤2可以用这个引导脚本完成(例如:App/server/boot/create-admin-user.js
):
module.exports = function(app) {
var User = app.models.ExtendedUser;
var Role = app.models.Role;
var RoleMapping = app.models.RoleMapping;
User.findOrCreate({ where: { username: 'admin', email: 'admin@admin.com' } },
{
username: 'admin',
email: 'admin@admin.com',
password: 'admin123'
},
function(err, user) {
if (err) return console.log(err);
// Create the admin role
Role.findOrCreate({where: { name: 'ADMINISTRATOR' }},
{ name: 'ADMINISTRATOR' },
function(err, role) {
if (err) return debug(err);
console.log("Role Created: " + role.name);
// Assign admin role
RoleMapping.findOrCreate({where: { roleId: role.id, principalId: user.id }},
{ roleId: role.id, principalId: user.id, principalType: RoleMapping.USER },
function(err, roleMapping) {
if (err) return console.log(err);
console.log("ADMINISTRATOR Role assigned to " + user.username);
});
});
});
};
- 在
ExtendedUser
模型中创建ACL表项,允许角色ADMINISTRATOR
写:
' ' '
{
"name": "ExtendedUser",
"base": "User",
/* ... */
"acls": [
{
"accessType": "READ",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW"
},
{
"accessType": "WRITE",
"principalType": "ROLE",
"principalId": "ADMINISTRATOR",
"permission": "ALLOW"
}
]
}
相关文章:
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- 如果用户输入的长度小于最小长度,则显示错误消息
- DreamFactory REST API POST休息/用户/会话请求总是在IE9中返回错误
- 如何在使用XMLHttpRequest时向用户显示实际的网络错误
- 更改错误文本“用户 ID 或密码不正确”
- Facebook JavaScript SDK 检查用户是否为粉丝(错误:指定的版本无效)
- 更新:用户错误-TYPO!!grunt contrib咖啡错误查找文件&写入目的地
- MongoDB For Loop更新错误的用户
- 从Meteor呼叫向用户显示相应的错误消息
- 如果用户更改了url并且呈现了错误的视图
- 将字符串返回到类型为“0”的输出字段;数字“;针对用户错误javascript
- 使用 sailsjs 护照身份验证本地策略既不会给出任何错误,也不会对用户进行身份验证
- 访问不同的数据库,防止用户错误PHP
- 如何删除未定义的对象错误并根据位置重定向用户
- 当错误时清除cookie 使用护照反序列化用户.js
- 将数据发送给特定用户(套接字上缺少错误处理程序)
- 地理位置错误:用户拒绝了安卓地理位置
- parse.com引用错误:用户未定义
- 你好,我得到这个错误:类型错误:用户不是一个函数
- Facebook墙帖子错误:用户没有授权应用程序访问