mongodb node.js 身份验证启动/连接

创建管理员用户

$ mongo

> use admin

> db.createUser(
     {
       user:"user01",
       pwd:"pwd123",
       roles:[{role:"root",db:"admin"}]
     }
  )

> exit

验证账户

$ mongo
> use admin 
> db.auth('user01','pwd123')
1

返回1,表示验证通过

获取所有用户

> db.getUsers()

> db.changeUserPassword("reporting", "SOh3TbYhxuLiW8ypJPxmt1oOfL")

删除数据库用户

$ mongo
> use admin 
> db.auth('user01','pwd123')
1
> db.dropUser('user02') // user02 为你创建的其他用户

启用身份验证启动

使用fork启动

$ mongod --auth --port 27017 --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork

如何查询dbpath/logpath

$ ps aux|grep mongo

Node.js 中进行验证连接

连接数据库

mongodb: 'mongodb://user01:pwd123@localhost:27017/dbname?authSource=admin'

abname 填你的dbname

如果使用了session,session的保存也是在mongodb中,那么也需要验证,以express-session为例:

const session = require('express-session');
const MongoStore = require('connect-mongo')(session);

const app = express();

app.use(session({
  secret: 'a%y*i#jad^&%$897_+23r&1jk(q!%t-+16HgsuW',
  resave: false,
  saveUninitialized: true,
  cookie: {
    maxAge: 60 * 60 * 1000
  },
  store: new MongoStore({
    url: 'mongodb://user01:pwd123@localhost:27017/session?authSource=admin'
  })
}));
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页