如何处理一个node.js博客上的Admin?

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

我是一个使用express和mongoose进行后端开发的初学者,我正在创建一个只有一个管理员可以编辑、创建、删除文章的博客。

我正在创建一个博客,只有一个管理员可以编辑、创建、删除文章。我将如何处理管理员?是否可以为管理员创建一个mongoose模型,或者我可以将他的密码和用户名放在一个.env文件中,然后在登录路径中进行比较?

.env文件在生产过程中安全吗?客户端可以通过浏览器访问过程.env吗?

jsonwebtokens够不够认证,还是要用 passport.js?

node.js express authorization admin production-environment
1个回答
0
投票

如果你的博客只有你一个人使用,你当然可以用一个 env 文件来存储你的帐户和密码。

但是,如果你要做一个 "正常 "的应用程序,你应该在数据库中创建一个用户表,并使用认证机制来保证你的数据安全。

另外。jwt 通常用于验证RESTful接口,但也有许多其他的验证方法,如 sessionidoauth你应该根据你的需求选择合适的认证方式。


0
投票

实现管理员很简单,如果你已经有了一个普通用户的模式,只需要添加一个指定是否为管理员的字段。

const userSchema = new mongoose.Schema({
    username:{
        type: String,
        ...
    },
    password:{
        type: String,
        ...
    },
    role: {
        type: String,
        default: 'user',
        enum: ['admin', 'user']
    }
})

然后,对于所有只有管理员才能做的保护路由(如编辑、创建等),在它之前放置一个中间件函数来检查用户的角色字段。

    const restricted = (req, res, next) => { 
        if (user.role !== 'admin') { // assuming you pass user info
            return res.status(403).json({
                status: 'fail',
                message: 'Unauthorized to access this route'
            })
        }
        next()
    }
© www.soinside.com 2019 - 2024. All rights reserved.