当前位置: 首页 > 后端技术 > Node.js

一步步搭建react应用-mongodb开启身份认证

时间:2023-04-03 19:25:47 Node.js

【一步一步搭建一个React应用-开始】(https://segmentfault.com/a/11...git地址启动Mongodbmongod无需认证--port3007--configmongod.confmongoconnectioninstancemongo--port3307创建用户超级管理员使用admindb.createUser({user:"myAdmin",pwd:"XXXXX",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})重启mongodb,添加访问控制mongod--port3007--configmongod.conf--authauthenticationmongoauthenticationwhenconnecting--port3307-u'xxx'-p'xxx'--authenticationDatabase"admin"authenticationmongoafterconnection--port3307useadmindb.auth('用户名','pwd')为其他库创建用户使用moviesdb.createUser({user:"moviesAdmin",pwd:"XXXX",roles:[{role:"readWrite",db:"movies"},{role:"read",db:"db2"}]})//添加用户moviesAdmin,对movies有读写权限,对db2有读权限db.jsconst{MongoClient,ObjectId}=require('mongodb')constf=require('util').formatconstuser=encodeURIComponent('moviesAdmin')constpwd=encodeURIComponent('xxxxx')constauthMechanism='DEFAULT'letdb_name='Movies'if(process.env.NODE_ENV=='测试'){db_name='莫vies_test'}consturl=f(`mongodb://%s:%s@localhost:3307/${db_name}?authMechanism=%s`,user,pwd,authMechanism)module.exports={connect(){返回MongoClient.connect(url).catch(e=>{console.log(e)})},id(id){try{if(id){returnnewObjectId(id)}else{returnnewObjectId()}}赶上(e){}}}