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进阶:如何将图片转成datauri嵌入到网页中去实例
Nov 21 NodeJs
详解NodeJs支付宝移动支付签名及验签
Jan 06 NodeJs
nodeJs链接Mysql做增删改查的简单操作
Feb 04 NodeJs
3分钟快速搭建nodejs本地服务器方法运行测试html/js
Apr 01 NodeJs
深入理解Nodejs Global 模块
Jun 03 NodeJs
Nodejs调用WebService的示例代码
Sep 29 NodeJs
NodeJs通过async/await处理异步的方法
Oct 09 NodeJs
使用nodeJs来安装less及编译less文件为css文件的方法
Nov 20 NodeJs
NodeJS简单实现WebSocket功能示例
Feb 10 NodeJs
nodejs脚本centos开机启动实操方法
Mar 04 NodeJs
NodeJS多种创建WebSocket监听的方式(三种)
Jun 04 NodeJs
nodejs各种姿势断点调试的方法
Jun 18 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
如何在PHP中使用Oracle数据库(5)
2006/10/09 PHP
PHP中一个控制字符串输出的函数
2006/10/09 PHP
php Session无效分析资料整理
2016/11/29 PHP
详解php中curl返回false的解决办法
2019/03/18 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
在html页面上拖放移动标签
2010/01/08 Javascript
浅析JavaScript基本类型与引用类型
2014/05/28 Javascript
js动态添加onclick事件可传参数与不传参数
2014/07/29 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
cookie的secure属性详解
2015/04/08 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
angularjs表格ng-table使用备忘录
2016/03/09 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
javascript表达式和运算符详解
2017/02/07 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
js jquery 获取某一元素到浏览器顶端的距离实现方法
2018/09/05 jQuery
es6数值的扩展方法
2019/03/11 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
2019/04/11 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
Vue实现剪切板图片压缩功能
2020/02/04 Javascript
python用来获得图片exif信息的库实例分析
2015/03/16 Python
Flask 让jsonify返回的json串支持中文显示的方法
2018/03/26 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
pytorch 模型可视化的例子
2019/08/17 Python
python接口自动化如何封装获取常量的类
2019/12/24 Python
OpenCV哈里斯(Harris)角点检测的实现
2020/01/15 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
联想台湾官网:Lenovo TW
2018/05/09 全球购物
会计试用期自我评价
2014/09/19 职场文书
感恩主题班会教案
2015/08/12 职场文书
小学生运动会广播
2015/08/19 职场文书
2022新作动画《福星小子》释出宣传影片 加入内田真礼&宫野真守配音演出
2022/04/08 日漫
开发者首先否认《遗弃》被取消的传言
2022/04/11 其他游戏
Springboot中如何自动转JSON输出
2022/06/16 Java/Android