我有一个用SailsJS和mysql开发的应用。只有登录的用户才能创建一个新用户。在开发阶段,我通过一个简单的服务器请求就可以轻松创建第一个用户。但这是不可行的,因为我已经写了一些策略代码来防止这种情况。
module.exports= async function(req, res, proceed){
const adminId = req.param('adminId');
if(!adminId){
return res.status(401).json({status: 401, message: 'Unauthorized access, invalid user'});
}
//let's check if the user has a role as superadmin
const superAdmin = await Admin.findOne({id: adminId, superAdmin: true});
console.log(superAdmin)
if(superAdmin){
return proceed();
}
else{
return res.status(401).json({status: 401, message: "Unauthorized access. You don't have this privilege"})
}
}
另外,每个保存的新用户在mysql数据库中都有一个强制性的createdBy列。
目前我想在生产上托管这个项目。我应该用什么最好的方法来做这件事。默认情况下,我应该运行
sails lift --prod
在生产环境下,生成mysql表。但是,我将无法登录或创建一个管理员用户。那么,我有什么办法可以创建一个新用户呢?
"最好 "的方式显然是主观的。 就我个人而言,我会用第一个生产用户来写一个迁移来引导DB(你正在使用迁移,对吗?
有些人避开了包括 DML 虽然根据我的经验,在一个正在开发的应用程序的漫长生命周期中,在某些时候需要进行某种类型的 "数据修复"。 在迁移过程中尽可能地不费吹灰之力地进行,是最简单、最可靠的方法。