[英]Keep passport session alive during server restart
有沒有辦法可以通過服務器重啟來維護用戶會話,以幫助保持我的開發良好和快速?
我正在我的機器上本地處理ExpressJS節點項目。 我正在使用Grunt-nodemon來查看我的JS文件,並在我進行更改后重新啟動服務器。 這意味着我的項目上的任何會話(用戶登錄)都被擦干凈了。
目前,如果我在某個地方的深度頁面並重新啟動,我會被踢到登錄頁面並且必須重新導航,這真的很令人沮喪。
我使用護照作為會話中間件。 我正在使用mongoose作為我的主要應用程序數據存儲區,如果我能以某種方式使用它將是超級的。
使用任何存儲方法都很簡單。
一種選擇是使用Redis。
以下是使用connect-redis
模塊的示例:
app.use(express.cookieParser());
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
app.use(express.session(
{
store: new RedisStore(
{
host: '127.0.0.1', //where redis store is
port: 6379, //default redis port
prefix: 'sess', //prefix for sessions name is store
pass: 'passwordtoredis' //password to redis db
}
),
secret: 'cookiesecret', //cookie secret
key: 'express.sid'
}
));
它可以更簡潔,但它應該運作良好。
設置redis很容易; redis網頁有一個很棒的教程: http : //redis.io/topics/quickstart
請記住,默認情況下redis將會話存儲在內存中,這意味着如果重新啟動硬件,會話將丟失(但有一個選項可以使其保持不變http://redis.io/topics/persistence )
希望這有助於:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.