使用session插件并且实现登录验证

var express = require(‘express‘);
var cookieParser = require(‘cookie-parser‘);
var bodyParser = require(‘body-parser‘);
var session = require(‘express-session‘);
var swig = require(‘swig‘);
var user = require(‘./modules/user‘);
var app = express();

//设置swig模板方法;
app.engine(‘html‘, swig.renderFile);
app.set(‘view engine‘, ‘html‘);
app.set(‘views‘, __dirname + ‘/views‘);

//console.log(user)
app.use(session({
  secret: ‘hubwiz app‘, //secret的值建议使用随机字符串
  saveUninitialized: true,
  cookie: {
    secure: false
  } // 过期时间(毫秒)
}));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());

app.get(‘/‘, function (req, res) {
  if (req.session.sign) {//检查用户是否已经登录,如果已登录展现的页面
    console.log(req.session);//打印session的值
    res.send("已登录");
  } else {//否则展示index页面
    res.render(‘index‘, {title: ‘index‘});
  }
});
app.get(‘/out‘,function(req,res){
  req.session.destroy();
  res.send("out");
});
app.post(‘/login‘, function (req, res) {
  //登录的数据和user.json中的数据进行对比
  if (req.body.password != user.hubwiz.password || req.body.user != user.hubwiz.name ) {
    res.end(‘sign failure‘);
  } else {
    req.session.sign = true;
    req.session.name = user.hubwiz.name;
    res.send(‘welecome <strong>‘ + req.session.name + ‘</strong>,<a href="/out">登出</a>‘);
    console.log(‘成功登录‘);
  }
});

app.get("/app",log,function(req,res){
  res.send("登录app");
});

//登录验证函数;
function log(req,res,next){
  console.log(‘通过log验证‘);
  if(req.session.sign){
    return next();
  }else{
    res.redirect(‘/‘);
    return null;
  }
}

app.listen(8080);
时间: 2024-10-10 20:08:00

使用session插件并且实现登录验证的相关文章

ThinkPHP中利用SESSION实现用户登录验证的方法

用户登上一个主页无非有这么两种状态,一种是类似于游客的身份登录,另一种是曾经已经登陆过的身份即经过服务器验证过的身份登录. 针对这两种登录,主要说一下: 我们在使用thinkphp的时候,首先,他是不提高登录验证功能的,仅仅是在路径方面做的相对比较安全,因为我们如果不对登录身份进行充足的验证,用户就完全可以去试着登录你的后台管理,那么这是非常可怕的,所以,首先要明白一个非常重要的业务逻辑. 如果按照正常的输入用户名密码的方式进行登录,在跳转之前我们就应该写入session数据,然后用数据进行登录

玩转web之servlet(六)---session介绍及简单使用(登录验证中保存信息)

在浏览器与服务器进行交互时,往往需要把涉及到的一些数据保存下来,这时就需要使用cookie或session进行状态管理. 这篇文章先来说说session怎么用,首先在servlet中创建一个session来保存信息,举个例子,在做登陆验证时,如果登陆成功,需要将用户的信息保存到session中,怎么保存呢?下面给出代码: public class Login_Do extends HttpServlet { String order_name = ""; String order_pa

[MVC学习笔记]5.使用Controller来代替Filter完成登录验证(Session校验)

      之前的学习中,在对Session校验完成登录验证时,通常使用Filter来处理,方法类似与前文的错误日志过滤,即新建Filter类继承ActionFilterAttribute类后重写OnActionExecuting方法,在RegisterGlobalFilters方法中注册新建的Filter类,之后直接在需要验证的Action前加上Filter标记即可. 1. 新建登陆校验类CheckLoginAttribute using System.Web.Mvc; namespace P

cookie和session实现登录验证

回话技术,比如在做登录功能的时候,需要配合是用存储在客户端的cookie信息,以及存储在服务端的session来实现登录功能.在cookie中保存了用户的信息,特别是一个特殊的令牌信息,当用户拿着这个特殊的令牌来访问网站的时候,网站会从cookie中获取这个特殊令牌去数据库session中去查询是否有这个对应的令牌的信息,如果有则验证成功,就可以把用户的信息返回给客户端了,如果验证失败则提示用户没有登录等等提示信息. cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,

Asp.net MVC访问母版页中嵌套的iframe页面时,如果session或cookie过期,登录验证超时怎样自动跳转到登录页

一般登录验证的过滤器中,使用验证过滤器的Redirect方法,将请求重定向到指定的URL.但是如果我们要访问的页面是一个嵌套在母版页中的iframe页面时,这种重定向只会对iframe页面凑效,也就是会将iframe也重定向到登录页,这样就有违我们的目的了.所以我就尝试了很多方法来实现让整个页面重定向到登录页的目标,接下里我就来分享一下我的心路历程~~如果想看解决方法,可以直接拉到最后,忽略我的啰啰嗦嗦~~ 首先,我尝试了替换掉Redirect,改用了Write方法,意在将指定字符串写入HTTP

ThinkPHP之登录验证

我比较懒,估计写的不是很完整 <?php /** * Created by dreamcms. * User: Administrator * Date: 2016/9/5 * Time: 17:15 */ namespace Admin\Controller; use Think\Controller; class LoginController extends CommonController{ //视图显示 public function Login(){ $this->display(

Java Web Filter登录验证

初做网站需要登录验证,转自 :http://blog.csdn.net/daguanjia11/article/details/48995789 Filter: Filter是服务器端的组件,用来过滤web请求.当发生一个web请求时,web容器会先检查请求的URL是否设置了Filter,如果设置了,则执行该Filter的doFilter方法.所有Filter都实现了javax.servlet.Filter接口,doFilter是定义在该接口中的最重要的方法. 最常见的使用过滤器的例子有:登录访

???Struts2框架03 session的使用、登录逻辑【session工作原理】

1 登录逻辑 1.1 获取登录数据(例如:用户民.密码) 1.2 在控制层调用业务层来验证数据信息 1.3 登录成功:保存用户信息(服务器用session.浏览器用cookie),跳转到主页满 1.4 登录失败:留在登录页面,并给出错误提示信息 2 什么是session 就是一个会话对象,有服务器创建,目的是为了共享数据(注意:每一个浏览器对应一个session对象) 3 session的工作原理 待更新... 2017年7月3日21:53:09 4 在struts2中获取session对象的方

SpringMVC+Apache Shiro+JPA(hibernate)案例教学(三)给Shiro登录验证加上验证码

序: 给Shiro加入验证码,有多种方式,当然你也可以通过继承修改FormAuthenticationFilter类,通过Shiro去验证验证码.具体实现请百度: 应用Shiro到Web Application(验证码实现) 而今天我要说的,既然使用的SpringMVC,为什么不直接在Controller中就处理验证码验证,让事情变的更简单一点呢? 一.新建ValidateCode.java验证码工具类 package org.shiro.demo.util; import java.util.