我创建了一个自定义用户模型,该模型继承了内置用户模型。然后我添加了一个创建默认用户的启动脚本。
User.create([{
username: 'admin',
email: 'email@email.com',
password: 'admin'
}], on_usersCreated);
这将在monogdb数据库中创建一个文档。但是,当我尝试登录时,会发送401未经授权的请求。
我试图找到问题的根源,似乎环回不能在数据库中鳍这样的用户。更具体地说,在node_modules / loopback / common / models / user中有这样的:
self.findOne({where: query}, function(err, user) {
var defaultError = new Error('login failed');
defaultError.statusCode = 401;
....
其中
query = { email: "email@email.com" }
但问题是它无法在数据库中找到具有该电子邮件的用户,尽管它确实存在。
这是user.json文件
{
"name": "user",
"base": "User",
"idInjection": true,
"properties": {},
"validations": [],
"relations": {},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "admin",
"permission": "ALLOW"
}
],
"methods": []
}
答案 0 :(得分:1)
我设法解决了这个问题。正如@superkhau强调的那样,您应该使用自定义用户模型来创建默认用户。
此外,我不得不公开用户模型API并隐藏内置用户API;所以在model-config.js
中 ...
"User": {
"dataSource": "db",
"public": false
},
"user": {
"dataSource": "db",
"public": true
},
...
答案 1 :(得分:0)
您可能有两个集合:用户和用户。在您的模型中,用户从用户扩展。您使用哪种模型创建用户记录?