我想在访问数据库之前在MongoDB上实现身份验证。像在MYSQL中一样,我们必须在PHP中为特定数据库创建用户名和密码。
现在,我想在MongoDB上实现相同的协议。我想知道如何为MongoDB数据库创建用户名和密码,以便从节点服务器生成请求时,我必须传递凭据,而没有凭据则必须生成错误。任何教程建议都非常感谢,或者有人有更好的主意来分享。我只希望我的数据库仅对正版服务器或可信服务器做出响应。
答案 0 :(得分:0)
使用Express时,您可以创建身份验证中间件。例如,如果使用该实现,则可以检查有效的json网络令牌。
然后,用于访问db的语法为:
app.get(«/api/db», authMiddleware, async (req, res) => {
const db = Db.find();
}
其中authMiddleware是导出的函数,您可以根据所需的验证来实现自己,而db是您尝试访问的任何db,例如类别或项目之类。
如果您有多个中间件,则可以简单地将它们添加为数组,如下所示:
app.get(«/api/db», [middleware1, middleware2], async (req, res) => {})
例如,使用它可以例如首先检查是否存在登录用户,然后可以检查该用户是否为管理员。 请注意,这种方法拒绝对您的api端点的访问,但是因此将拒绝对通过此端点访问的数据库的访问。
答案 1 :(得分:-1)
db.createUser( { 用户:“ user_name”, pwd:“密码”, 角色:[{角色:“ readWrite”,数据库:“ database_name”}] } )
在您的数据库外壳中编写以上查询。但是请记住根据您的用途使用内置角色