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的模块写法入门(实例代码)
Mar 07 NodeJs
轻松创建nodejs服务器(10):处理POST请求
Dec 18 NodeJs
Nodejs从有门道无门菜鸟起飞必看教程
Jul 20 NodeJs
详解nodejs的express如何自动生成项目框架
Jul 12 NodeJs
Nodejs 和Session 原理及实战技巧小结
Aug 25 NodeJs
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
Sep 18 NodeJs
Nodejs调用WebService的示例代码
Sep 29 NodeJs
Nodejs模块载入运行原理
Feb 23 NodeJs
nodejs 简单实现动态html的方法
May 12 NodeJs
nodejs之koa2请求示例(GET,POST)
Aug 07 NodeJs
nodejs基础之buffer缓冲区用法分析
Dec 26 NodeJs
nodejs读取图片返回给浏览器显示
Jul 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
php定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
php选择排序法实现数组排序实例分析
2015/02/16 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
关于JavaScript中的关联数组分析
2013/04/09 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
10条建议帮助你创建更好的jQuery插件
2015/05/18 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
从零学习node.js之mysql数据库的操作(五)
2017/02/24 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
AngularJS实现的输入框字数限制提醒功能示例
2017/10/26 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
JavaScript 实现同时选取多个时间段的方法
2019/10/17 Javascript
vue双向绑定数据限制长度的方法
2019/11/04 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
JS数组方法shift()、unshift()用法实例分析
2020/01/18 Javascript
python list中append()与extend()用法分享
2013/03/24 Python
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
Django框架封装外部函数示例
2019/05/28 Python
简单了解Python3里的一些新特性
2019/07/13 Python
详解Python 4.0 预计推出的新功能
2019/07/26 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
档案接收函
2014/01/13 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
本科毕业自我鉴定
2014/03/20 职场文书
暑期学习心得体会
2014/09/02 职场文书
观看《信仰》心得体会
2016/01/15 职场文书