资讯专栏INFORMATION COLUMN

nodejs+express+express-session+redis 实现登陆验证

AlphaGooo / 3399人阅读

摘要:默认链接错误其他中间件省略默认小时全局中间件第一次登陆从数据库中比对账号验证是否成功,如成功保存用户信息登陆成功需要登陆验证的路由获取文章你好,欢迎来到我的家园。你还没有登录,先登录下再试试个人项目小博客链接参考文章

redis.js

var ioRedis = require("ioredis");
var logger = require("./logger");
var redis = new ioRedis();
// 默认127.0.0.1:6379
// redis 链接错误
redis.on("error", function (error) {
    logger.error(error);
});
exports.redis = redis;

app.js

const index = require("./routes/index.js");
const app = express();
const cookieParser = require("cookie-parser")
const session = require("express-session");
const RedisStore = require("connect-redis")(session);
const http = require("http");
const httpServer = http.createServer(app);
var redis = require("./redis/redis.js").reids;
...其他中间件省略
app.use(cookieParser("sessiontest"));
app.use(session({
  store: new RedisStore({
    client: redis,
    prefix: "hgk"
  }),
  cookie: { maxAge: 1 * 60 * 60 * 1000 }, //默认1小时
  secret: "sessiontest",
  resave: true,
  saveUninitialized: true
}));
app.use("/", index)
//全局error中间件
app.use(function(err, req, res, next) {
  console.log("Error happens", err.stack);
});
httpServer.listen(3000, function() {
  console.log("HTTP Server is running on: http://localhost:%s", 3000);
});

第一次登陆

router.get("/login", function(req, res, next) {
    // 从数据库中比对账号验证是否成功,如成功保存用户信息
    var user={
        name:"Chen-xy",
        age:"22",
        address:"bj"
    }
  req.session.user=user;
  res.json("登陆成功")
});

需要登陆验证的路由

//获取文章
router.get("/articals", function(req, res, next) {
    if(req.session.user){
        var user=req.session.user;
        var name=user.name;
        res.send("你好"+name+",欢迎来到我的家园。");
    }else{
        res.send("你还没有登录,先登录下再试试!");
    }
});

个人项目小博客链接https://github.com/hangaoke1/...

参考文章:
http://blog.csdn.net/u0126795...
http://wiki.jikexueyuan.com/p...
http://blog.csdn.net/yuanguoz...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/86773.html

相关文章

  • Session原理、安全以及最基本的ExpressRedis实现

    摘要:基于以上原因,很多管理都是基于实现的。在经过中间件的时候就会自动完成的有效性验证延期重新颁发以及对中数据的获取了。上述代码只是对于请求的静态处理,整个用户管理的另一个方面则是状态的切换用户的登陆登出以及用户数据的获取。 基础概念 Session管理是Web Application的基础也是一个老生常谈的话题。为了方便后文的展开,更重要的是确认自己清晰的理解了整个Session管理的概...

    Airmusic 评论0 收藏0
  • Session原理、安全以及最基本的ExpressRedis实现

    摘要:基于以上原因,很多管理都是基于实现的。在经过中间件的时候就会自动完成的有效性验证延期重新颁发以及对中数据的获取了。上述代码只是对于请求的静态处理,整个用户管理的另一个方面则是状态的切换用户的登陆登出以及用户数据的获取。 基础概念 Session管理是Web Application的基础也是一个老生常谈的话题。为了方便后文的展开,更重要的是确认自己清晰的理解了整个Session管理的概...

    Null 评论0 收藏0
  • 公司项目NODEJS实践0.3[ mongo / session ...]

    摘要:使用,可参考执行退出命令,只要设置,即可。下节主要实现注册时的邮件验证保存登录状态异常处理,同步异步操作全栈工程技术新群上一篇公司项目实践下一篇待续 一、前言 ⋅⋅⋅书接上回,我们搭建了WEB服务端路由、模板等功能,完成了register 通过ajax与后端的通信,今天主要完成数据与mongodb的存取,实现注册 / 登录 / 退出功能 ⋅⋅⋅DEMO GIT https://gi...

    MoAir 评论0 收藏0
  • Node & 单页应用 来做一个完整用户系统吧!

    摘要:在路由回调函数里面操作的时候,直接用就可以获取到客户端的值。用回调函数来写后期看起来会很吃力看有没有重名的看是不是同一邮箱又想重复注册如果是以上两种情况,就发送错误信息。此账户名已经被注册。 1. 开场白 用户系统是许多网站的基础。这篇文章主要就是讲解如何写一个基于Node的单页应用的用户系统,这个用户系统的功能包括:注册,登录,自动登录,忘记密码,修改密码,邮件激活。如果使用在后端使...

    Chaz 评论0 收藏0
  • Web Session 浅入浅出

    摘要:通过浏览器的,可以看到此次会话的请求内容和响应内容。是协议的一部分。真实的产品,一般是创建一个保证唯一的,不易猜测出来的字符串。因此需要数据持久化的多提供者的方案。 使用过几种Web App开发语言和框架,都会接触到Session的概念。即使是一个简单站点访问计数的功能,也常常使用Session来实现的。其他常用的领域还有购物车,登录用户等。但是,对Session一直是一知半解,知其然...

    李昌杰 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<