簡體   English   中英

服務器重啟期間保持護照會話存活

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM