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 相关文章推荐
PHPStorm 2020.1 调试 Nodejs的多种方法详解
Sep 17 NodeJs
利用NodeJS的子进程(child_process)调用系统命令的方法分享
Jun 05 NodeJs
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
Nov 20 NodeJs
轻松创建nodejs服务器(3):代码模块化
Dec 18 NodeJs
nodejs中实现路由功能
Dec 29 NodeJs
初探nodeJS
Jan 24 NodeJs
NodeJs下的测试框架Mocha的简单介绍
Feb 22 NodeJs
nodejs中模块定义实例详解
Mar 18 NodeJs
NodeJs的fs读写删除移动监听
Apr 28 NodeJs
nodejs发送http请求时遇到404长时间未响应的解决方法
Dec 10 NodeJs
nodejs使用async模块同步执行的方法
Mar 02 NodeJs
NodeJS实现一个聊天室功能
Nov 25 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
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
php几个预定义变量$_SERVER用法小结
2014/11/07 PHP
使用PHP实现阻止用户上传成人照片或者裸照
2014/12/25 PHP
PHP7.1新功能之Nullable Type用法分析
2016/09/26 PHP
关于跨站脚本攻击问题
2011/12/22 Javascript
jquery文字上下滚动的实现方法
2013/03/22 Javascript
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
快速学习JavaScript的6个思维技巧
2015/10/13 Javascript
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
python多线程编程中的join函数使用心得
2014/09/02 Python
python用来获得图片exif信息的库实例分析
2015/03/16 Python
Python编写电话薄实现增删改查功能
2016/05/07 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
python实现简单的购物程序代码实例
2020/03/03 Python
python中pyplot基础图标函数整理
2020/11/10 Python
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
linux面试题参考答案(4)
2014/09/21 面试题
介绍一下RMI的基本概念
2016/12/17 面试题
护士自荐信范文
2013/12/15 职场文书
维护民族团结演讲稿
2014/08/27 职场文书
文员试用期转正自我鉴定
2014/09/14 职场文书
“5.12”护士节主持词
2015/07/04 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
如何在CSS中绘制曲线图形及展示动画
2021/05/24 HTML / CSS
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
解析探秘fescar分布式事务实现原理
2022/02/28 Java/Android