大佬教程收集整理的这篇文章主要介绍了node.js – 如何使用快速会话生成自定义会话ID?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
redis配置
var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var compression = require('compression'); var session = require('express-session'); var redis = require('redis'); var redisStore = require('connect-redis')(session); var routes = require('./routes/index'); var api = require('./routes/api'); var app = express(); var client = redis.createClient(); // compress all requests app.use(compression()) // view ENGIne setup app.set('views',path.join(__dirname,'views')); app.set('view ENGIne','ejs'); // uncomment after placing your favicon in /public //app.use(favicon(path.join(__dirname,'public','favicon.ico'))); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname,'public'))); app.use(session({ secret: 'SECRET',resave: false,saveUninitialized: false,store: new redisStore({ host: 'localhost',port: 6379,client: client}),cookie: { maxAge: 60000 },genid: function(req) { return "myApiKey"; } })); app.use('/',routes); app.use('/request_api',api); // catch 404 and forWARD to error handler app.use(function(req,res,next) { var err = new Error('Not Found'); err.status = 404; next(err); });
127.0.0.1:6379> keys * 1) "sess:myApiKey"
但是,我无法使用uuid生成唯一ID,如session-store github中的doc所述.
我试过像我这样在我的索引路由文件(routes / index.js)中插入会话值
/* GET home page. */ router.get('/',function(req,next) { req.session.user = "12345"; res.render('index',{ title: 'MyApp' }); });
但由于值未定义,无法读取genid函数内的值.
所以,我的问题是:
我可以使用任何模型的uuid生成会话ID,例如user-> uuid吗?如果是,我该怎么办?
谢谢,任何帮助将不胜感激.
var crypto = require('crypto'); var uuid = require('node-uuid');
你需要node-uuid然后在genid函数中
genid:function(req){ return uuid.v1(); },
或避免身份碰撞
genid:function(req){ return crypto.createHash('sha256').update(uuid.v1()).update(crypto.randomBytes(256)).digest("hex"); },
您可以通过req.sessionID访问应用程序中任何位置的会话ID.
以上是大佬教程为你收集整理的node.js – 如何使用快速会话生成自定义会话ID?全部内容,希望文章能够帮你解决node.js – 如何使用快速会话生成自定义会话ID?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。