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

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u013003052/article/details/78350561

创建管理员用户

$ 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'
  })
}));
展开阅读全文

没有更多推荐了,返回首页