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

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...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值