在SailsJS应用中使用Mysql时安全迁移数据库的最佳做法

问题描述 投票:0回答:1

我有一个用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表。但是,我将无法登录或创建一个管理员用户。那么,我有什么办法可以创建一个新用户呢?

mysql node.js security sails.js
1个回答
0
投票

"最好 "的方式显然是主观的。 就我个人而言,我会用第一个生产用户来写一个迁移来引导DB(你正在使用迁移,对吗?

有些人避开了包括 DML 虽然根据我的经验,在一个正在开发的应用程序的漫长生命周期中,在某些时候需要进行某种类型的 "数据修复"。 在迁移过程中尽可能地不费吹灰之力地进行,是最简单、最可靠的方法。

© www.soinside.com 2019 - 2024. All rights reserved.