node.js 实现一个简单的登录拦截器

拦截器在web开发中随处可见,比如站点的管理后台,不说所有人都能进入,所以就需要做一个拦截器并友好的跳转到提示页.

下面我们简单实现一种,判断用户是否登录成功,登录不成功的用户自动重定向到登录页面.

首先我们实现一个过滤器

exports.checkAuth=function(req, res, next) {
    var token = req.signedCookies.token;
    if (token && req.session.user && req.session.user.token === token)
        next();
    else if (token) {
        //if invalid token or no session, should rebuild
        var authInfo = user.getAuthInfo(token);
        if (authInfo && authInfo.isAuth) {
            req.session.user = {
                userID: authInfo.userID,
                userName: authInfo.userName,
                isAuth: authInfo.isAuth,
                token: token
            }
            next();

        } else
            res.redirect(‘/user/login‘);
    } else
        res.redirect(‘/user/login‘);
}

然后定义路由,并加入过滤器

module.exports = function (app) {
    app.get(‘/user/blogList‘,pageAdmin.checkAuth, pageAdmin.pageList);
    app.all(‘/user/post‘,pageAdmin.checkAuth, pageAdmin.pagePost);
}

上面的路由定义接收3个参数,第一个是 请求的url路径,第二个是过滤器,如果满足过滤器将下一步进入路由处理函数,如果不满足将不会走到后面的路由定义函数里.

时间: 2024-08-08 01:28:25

node.js 实现一个简单的登录拦截器的相关文章

[NodeJS]使用Node.js写一个简单的在线聊天室

声明:教程来自<Node即学即用>.源代码案例均出自此书.博文仅为个人学习笔记. 第一步:创建一个聊天server. 首先,我们先来写一个Server: var net = require('net') var chatServer = net.createServer() chatServer.on('connection',function(client){ client.write('connection~~~\n') client.end() }) chatServer.listen(

学习用node.js建立一个简单的web服务器

一.建立简单的Web服务器涉及到Node.js的一些基本知识点: 1.请求模块 在Node.js中,系统提供了许多有用的模块(当然你也可以用JavaScript编写自己的模块,以后的章节我们将详细讲解),如http.url等.模块封装特定的功能,提供相应的方法或属性,要使用这些模块,需要先请求模块获得其操作对象. 例如要使用系统的http模块,可以这样写: var libHttp = require('http'); //请求HTTP协议模块 这样,以后的程序将可以通过变量libHttp访问ht

LINUX下用Nginx和Node.js构建一个简单的项目(1)

由于我之前租了一个阿里云服务器,最近又开始学学Node.js,因此准备写点东西把过程记录一下.至于服务器上的Web环境安装阿里云有十分详细的安装说明,这里就略过了... 以下是我的Web环境: 服务器系统为LINUX 64位 Web:nginx Nginx:1.4.4 Php:5.3.29 Mysql:5.1.73 1.安装Nodejs 首先需要查看系统的Python和Make版本信息是否符合Node.js的安装环境.指令如下: # python # make -v 在官网下载nodejs(ht

struts一个简单的登录拦截

这是一段登录进行拦截的拦截器代码 我把action写成了一个配置文件,通过比较actionname来实现拦截功能 package com.shop.web.intercept; import java.util.ArrayList; import java.util.List; import java.util.ResourceBundle; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionC

LINUX下用Nginx和Node.js构建一个简单的项目(4)

发现了一个问题,就是每次启动都需要输入一遍 # node hello.js 这样很麻烦 而且一旦关闭控制台就停止运行,网站就无法打开,这是就需要使用forever模块 安装forever模块 # npm install forever -gd 通过下面的命令判断安装是否成功 # forever --help 使用forever运行hello.js项目 # forever start hello.js 这样即使关闭控制台浏览器也能正常访问 另外也可以用下面的命令运行项目 # forever sta

node.js的一个简单框架

require(); (); require(); require(); .(, (, ) {    .();    .(., ).;    .(.zzl);    .(.zzl); }) .post(, (, ) {    .();    .(); }) .delete(, (, ) {    .();    .(); }) .(, (, ) {    .();    .(); }) .(, (, ) {       .();    .(); }) .(, () {   .()..()..(,

用JS写一个简单的轮播器

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

Spring MVC实现的登录拦截器

之前接触过struts拦截器,但是没有使用过Spring MVC拦截器,今天花了一天时间好好研究了一下. 定义拦截器 SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的.在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方式是要定义的Interceptor类要实现了Spring 的HandlerInterceptor 接口,或者是这个类继承实现了HandlerInterceptor 接口的类,比如Sp

Spring mvc登录拦截器

自己实现的第一个Spring mvc登录拦截器 题目要求:拒绝未登录用户进入系统,只要发现用户未登录,则将用户请求转发到/login.do要求用户登录 实现步骤: 1.在spring的配置文件中添加登录拦截,如下: spring-web.xml <mvc:interceptors> <!-- 配置登陆拦截器 --> <mvc:interceptor> <mvc:mapping path="/**"/> //拦截所有请求 <mvc:e