加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 06:50:30 所属栏目:百科 来源:网络整理
导读:[一步一步构建一个react应用-开篇](https://segmentfault.com/a/11... git地址 通过不认证的方式启动Mongodb mongod --port 3007 --config mongod.conf mongo 连接实例 mongo --port 3307 创建用户超级管理员 use admindb.createUser( { user: "myAdmin",pwd

[一步一步构建一个react应用-开篇](https://segmentfault.com/a/11...

git地址

  • 通过不认证的方式启动Mongodb

    mongod --port 3007  --config mongod.conf
  • mongo 连接实例 mongo --port 3307
  • 创建用户超级管理员
use admin
db.createUser(
  {
    user: "myAdmin",pwd: "XXXXX",roles: [ { role: "userAdminAnyDatabase",db: "admin" } ]
  }
)
  • 重启mongodb,加上访问控制
mongod --port 3007  --config mongod.conf --auth
  • 认证

连接时认证

mongo --port 3307 -u 'xxx' -p 'xxx' --authenticationDatabase "admin"

连接后认证

mongo --port 3307

use admin

db.auth('username','pwd')

  • 为其他库创建用户
use movies
db.createUser(
  {
    user: "moviesAdmin",pwd: "XXXX",roles: [ { role: "readWrite",db: "movies" },{ role: "read",db: "db2" } ]
  }
)
//添加user moviesAdmin,对movies有读写权限,对db2有读权限

db.js

const {MongoClient,ObjectId} = require('mongodb')
const f = require('util').format
const user = encodeURIComponent('moviesAdmin')
const pwd = encodeURIComponent('xxxxx')
const authMechanism = 'DEFAULT'
let db_name='Movies'
if(process.env.NODE_ENV=='test'){
    db_name='Movies_test'
}
const url = f(`mongodb://%s:%s@localhost:3307/${db_name}?authMechanism=%s`,user,pwd,authMechanism)

module.exports = {
    connect() {
        return MongoClient.connect(url).catch(e=>{
            console.log(e)
        })
    },id(id) {
        try {
            if (id) {
                return new ObjectId(id)
            } else {
                return new ObjectId()
            }
        } catch (e) {

        }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读