我是 Node Js 新手。我正在使用 socket.io 和express 创建应用程序,它在用户登录后获取推文。如何创建 session ,以便推文页面仅在登录后打开,而不是在没有登录的情况下打开。
var express = require('express')
, app = express()
, http = require('http')
, server = http.createServer(app)
, Twit = require('twit')
, io = require('socket.io').listen(server);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/login.html');
});
app.get('/tweets', function (req, res) {
res.sendfile(__dirname + '/twitter.html');
});
最佳答案
配置 Express
var app = express();
app.configure(function () {
app.use(express.cookieParser());
app.use(express.session({secret: 'secret', key: 'express.sid'}));
});
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
server = http.createServer(app)
server.listen(3000);
配置Socket.IO
io = io.listen(server);
io.set('authorization', function (handshakeData, accept) {
if (handshakeData.headers.cookie) {
handshakeData.cookie = cookie.parse(handshakeData.headers.cookie);
handshakeData.sessionID = connect.utils.parseSignedCookie(handshakeData.cookie['express.sid'], 'secret');
if (handshakeData.cookie['express.sid'] == handshakeData.sessionID) {
return accept('Cookie is invalid.', false);
}
} else {
return accept('No cookie transmitted.', false);
}
accept(null, true);
});
关于javascript - 如何使用 Node Js 创建 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25113343/