nodejs个人博客开发第七步 后台登陆


Posted in NodeJs onApril 12, 2017

本文为大家分享了nodejs个人博客开发的后台登陆,具体内容如下

定义后台路径

访问这个路径进入后台页面 http://localhost:8888/admin/login

在后台路由控制器里面(/admin/index.js)调用登陆控制器(/admin/login.js)

//调用router对象的use方法,使用路由中间件
router.use("/login",require("./login"));

登陆控制器里面,定义登陆界面的路由,定义登陆提交验证的路由,这里需要获取到form表单post提交的数据,需要使用一个中间件叫body-parser

/**
* 后台登陆控制器
*/
var router=express.Router();
//引用中间件
var bodyParser = require('body-parser');
//使用以下这个中间件的方法
router.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
/*界面*/ 
router.get('/',function(req,res,next){
  res.render("admin/login");
});
/*验证*/
 router.post('/',function(req,res,next){
    //对口令进行最简单的写死的验证
  if(req.body.password=='taoshihan'){
            //记录一下session
      req.session.adminId=1;
      res.redirect("/admin");
  }else{
    res.send("口令错误!");
  }
});
module.exports=router;

后台主页判断是否有权限

后台对session里面的值进行判断,如果没有就是没登陆,跳到登陆页,不让进入。这里需要两个中间件express-session和cookie-parser

var session=require("express-session");
var cookieParser = require('cookie-parser');
var router=express.Router();
//使用以下session和cookie
router.use(cookieParser());
router.use(session({
  secret: '12345',
  name: 'nodejs-blog',  //这里的name值得是cookie的name,默认cookie的name是:connect.sid
  cookie: {maxAge: 8000000 }, //设置maxAge是80000ms,即80s后session和相应的cookie失效过期
  resave: false,
  saveUninitialized: true,
}));

验证权限有个公用的验证控制器/admin/auth.js

/**
* 验证控制器
*/
var auth=function(router){
  /*验证权限*/ 
  router.use(function(req,res,next){
    if(!req.session.adminId){
      res.redirect("/admin/login");
    }
    next();
  });  
}

module.exports=auth;

在需要验证的地方,调用这个路由中间件

/*验证权限*/ 
require("./auth")(router);

nodejs个人博客开发第七步 后台登陆

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
NodeJS Express框架中处理404页面一个方式
May 28 NodeJs
nodejs的10个性能优化技巧
Jul 15 NodeJs
nodejs简单实现中英文翻译
May 04 NodeJs
NodeJS远程代码执行
Aug 28 NodeJs
async/await与promise(nodejs中的异步操作问题)
Mar 03 NodeJs
nodejs个人博客开发第一步 准备工作
Apr 12 NodeJs
nodejs multer实现文件上传与下载
May 10 NodeJs
Nodejs中使用captchapng模块生成图片验证码
May 18 NodeJs
详解Nodejs mongoose
Jun 10 NodeJs
Nodejs把接收图片base64格式保存为文件存储到服务器上
Sep 26 NodeJs
nodeJS进程管理器pm2的使用
Jan 09 NodeJs
nodejs处理tcp连接的核心流程
Feb 26 NodeJs
nodejs个人博客开发第六步 数据分页
Apr 12 #NodeJs
nodejs个人博客开发第五步 分配数据
Apr 12 #NodeJs
nodejs个人博客开发第四步 数据模型
Apr 12 #NodeJs
nodejs个人博客开发第三步 载入页面
Apr 12 #NodeJs
nodejs个人博客开发第二步 入口文件
Apr 12 #NodeJs
nodejs个人博客开发第一步 准备工作
Apr 12 #NodeJs
nodejs获取微信小程序带参数二维码实现代码
Apr 12 #NodeJs
You might like
使用MaxMind 根据IP地址对访问者定位
2006/10/09 PHP
PHP下10件你也许并不了解的事情
2008/09/11 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
2015/12/24 Javascript
JavaScript的模块化开发框架Sea.js上手指南
2016/05/12 Javascript
JavaScript中的ajax功能的概念和示例详解
2016/10/17 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
2018/08/25 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
基于JS实现table导出Excel并保留样式
2020/05/19 Javascript
python处理html转义字符的方法详解
2016/07/01 Python
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
TensorFLow用Saver保存和恢复变量
2018/03/10 Python
python计算列表内各元素的个数实例
2018/06/29 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
python多进程间通信代码实例
2019/09/30 Python
Python Tkinter Entry和Text的添加与使用详解
2020/03/04 Python
Python多线程通信queue队列用法实例分析
2020/03/24 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
2020/09/23 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
2021/01/23 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
罗技美国官网:Logitech美国
2020/01/22 全球购物
市场专员岗位职责
2014/02/14 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
外贸业务员岗位职责
2015/02/13 职场文书