Node JS中的会话

Has*_*dar 14 javascript php session node.js

如何在Node JS中维护我的SESSIONS?例如,我想使用Node Js在SESSION中存储UserID.我怎么能在Node JS中做到这一点?我也可以在PHP中使用Node JS SESSION吗?

我想要

<?php $_SESSION['user'] = $userId; ?>
Run Code Online (Sandbox Code Playgroud)

在Node Js中.

Vag*_*nak 13

首次安装会话

npm install express-session --save
Run Code Online (Sandbox Code Playgroud)

初始化服务器页面上的会话

var express     =   require('express');

var session     =   require('express-session');

var app         =   express();

app.use(session({secret: 'ssshhhhh',saveUninitialized: true,resave: true}));
Run Code Online (Sandbox Code Playgroud)

商店会议

sess=req.session;

var user_id=1;

sess.user_id=user_id;
Run Code Online (Sandbox Code Playgroud)

访问会话

sess=req.session;

sess.user_id
Run Code Online (Sandbox Code Playgroud)


Jah*_*lam 8

让我把你的问题分成两部分.

1.如何在Node JS中维护我的SESSIONS?
答:使用快速会话中间件来维护SESSIONS

2.我也可以在PHP中使用那个Node JS SESSION吗?
答: 是的,您也可以在PHP中使用该会话,但请记住,您必须将该会话存储在数据库中.


Ben*_*kay 7

ExpressJS有官方会话中间件,它也是Node.js当前事实上的标准Web框架.


如果您希望自己实现会话支持,这就是每次请求时通常完成实现的方式:

  1. 检查cookie是否包含会话ID
    • 如果没有,请创建一个存储在内存,文件或数据库(或其组合)中的会话对象,并在响应cookie中设置会话ID以匹配此对象的标识符.
    • 如果cookie确实包含会话ID,请按ID查找会话对象.
  2. 提供步骤1中获取/创建的对象作为请求的持久会话对象.

您还必须实现一些超时机制,以便在一段时间后删除会话对象,至少从内存中删除.