在node.js中不是基于cookie的会话pipe理

我正在寻找node.js中基于非cookie的会话pipe理,就像在URL中传递参数(如&session_id= 。 当一个请求带有一个session_id时,它将知道会话已经过期。 我已经看过connect库,但它看起来只是基于cookie。

警告

将会话session id作为GETparameter passing被认为是不好的做法。 为什么? 这是危险的,因为人们通常不关心session id ,他们可能会发布/共享链接与他们的会议id在里面。

这也是一个问题,因为当用户点击您网页上的外部链接并转到其他网站时,该新网站将能够在引荐链接中看到session_id

所以我不认为这是一个好主意。 cookies更安全。

看看: 会话劫持

对于您收到的每个请求,您都将相应地获取所有客户端Cookie。 您也可以使用“Set-Cookie”在响应HTTP标头中设置客户端Cookie。

使用GET参数是不安全的。 任何用户都可能意外地分享他们的会话ID,但是如果你想100%的安全,我会通过cookies共享会话ID,我会使用HTTPS来防止窥探者窃取cookie。

您可以使用localstoragesessionStorage ..

  • 几乎和cookie一样
  • 不是一个cookies
  • 比cookies好!

更多信息: https : //developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage

在Js中使用非常简单,例如:

 <script> // check if Storage is avaible if(typeof(Storage)!=="undefined") { // Save data to local storage (no exiparion date) localStorage.setItem("name_always", "bxx"); // Save data to the current session (removes when the tab is closed) sessionStorage.setItem("name_now", "bxx"); } else { // No Storage support... } // Access to stored data alert( "For only now, my name is: " + sessionStorage.getItem("name_now")); alert( "Every day, my name is: " + localStorage.getItem("name_always")); </script> 

标签: javascript的 html5 本地存储 会话存储

您可以在node.js中使用与商店的会话。 例如,你有快速的应用程序,并希望在你的web应用程序中使用类似系统的会话。 你可以使用connect-mongo模块。 这将让你存储你的会话在分贝。 在你的app.js中

 var express = require('express'), , mongoStore = require('connect-mongo')(express); var app = express(); app.configure('all', function () { app.use(express.session({ secret: "terces", cookie: { maxAge: 24 * 60 * 60 * 1000 }, store: new mongoStore({ url: your_db_url }) })); app.use(function(req, res, next) { res.locals.session = req.session; next(); }); }); 

使用上面的基本代码,你可以直接在控制器和视图中使用它。 在你的控制器中

 app.post('/blog/create/?', function(req, res, next) { if (!req.session.user) { next("You need to login in order to create blog!"); } }); 

在你看来,你可以使用session.user来生成configuration文件菜单。