小编ral*_*hie的帖子

控制会话启动快速连接中间件

有没有办法控制会话何时以connect的会话中间件启动?

例如,如果我有快递app配置:

var app = express();
app.configure(function(){
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.cookieParser('secret'));
  app.use(express.session({ store:sessionStore, ... }));
});
Run Code Online (Sandbox Code Playgroud)

然后在每个请求上,如果没有给出会话cookie,则启动会话.如果我只想在用户通过身份验证后才启动会话,该怎么办?

例如,假设我有两个途径/protected/login.

  • 如果有人在/protected没有会话cookie的情况下命中,则中间件将不会启动新会话.(req.sessionnull)
  • 如果某人遇到/protected会话cookie,中间件将检查是否存在与cookie匹配的活动会话并设置req.session,但不会启动新会话.(req.session可能有价值或是null)
  • 如果有人/login使用正确的参数进行命中,则会明确启动会话,然后才会设置cookie.

启动会话的唯一方法应该是明确的:

app.post('/login', function(req, res, next) {
  // connect to database and validate user...
  db.authenticate( req.body.user, req.body.pass, function(allow) {
    if (allow) {
      // START SESSION HERE
      // this will send set …
Run Code Online (Sandbox Code Playgroud)

session connect node.js express

7
推荐指数
1
解决办法
1790
查看次数

标签 统计

connect ×1

express ×1

node.js ×1

session ×1