什么是 express-user
express-user 是一个方便用户身份认证的中间件库,可以帮助前端开发人员快速实现用户身份认证功能。该库集成了 Express、Passport 和 bcryptjs 库,并提供了许多功能强大的 API。使用 express-user,前端开发人员可以轻松地实现用户注册、登录、注销等功能,同时也能够自定义用户模型。
安装 express-user
在开始使用 express-user 之前,需要先安装 Node.js 和 Express 框架。然后,使用 npm 进行安装:
npm install express-user
基本用法
- 引入 express、express-user 和 passport
const express = require('express'); const expressUser = require('express-user'); const passport = require('passport');
- 初始化 express
const app = express();
- 使用 express-user
app.use(expressUser.initialize()); app.use(expressUser.session()); app.use(passport.initialize()); app.use(passport.session());
- 设置登录路由
app.post('/login', passport.authenticate('local', { failureRedirect: '/login' }), function(req, res) { res.redirect('/'); });
- 设置登出路由
app.get('/logout', function(req, res){ req.logout(); res.redirect('/'); });
API 介绍
Authentication
express-user 通过 Passport 实现用户身份认证,支持多种认证策略:
本地认证
app.post('/login', passport.authenticate('local', { failureRedirect: '/login' }), function(req, res) { res.redirect('/'); });
GitHub 认证
app.get('/auth/github', passport.authenticate('github')); app.get('/auth/github/callback', passport.authenticate('github', { failureRedirect: '/login' }), function(req, res) { res.redirect('/'); });
User API
express-user 提供了以下 API 用于用户管理:
注册
-- -------------------- ---- ------- ------------------- ------------- ---- - ------------------------------- ------------- ------ ------------------------------------------- ----- ------------- ------ ----- ---- - -------------- ----- ---- - --- ------ --------- ------------------ --------- ---- --- ------------------------ --------------- -------------- ------------------------- --- --- --- --- ---
用户信息
app.get('/profile', require('connect-ensure-login').ensureLoggedIn(), function(req, res){ res.render('profile', { user: req.user }); });
更新用户信息
-- -------------------- ---- ------- -------------------- ------------------------------------------------- ------------- ----- ----- ---- - -------------- -------------------------- ------------- ----- - -- ----- - ------ ---------------- - ------------- - ----------------- -- -------------- ---------- - -------------- -- ----------- ----------------------- - ------------------------- --- --- ---
User Model
express-user 使用 Mongoose 模型库来创建用户模型。可以使用以下方式自定义 User 模型:
const userModel = new mongoose.Schema({ username: String, password: String, email: { type: String, unique: true }, status: { type: String, default: 'active' } }); module.exports = mongoose.model('User', userModel);
结语
本篇文章简单介绍了 express-user 的基本用法和 API,并提供了示例代码。希望读者能够在实际开发中应用该库,加速开发进程,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/express-the-user