簡體   English   中英

Node.js會話在生產中不持久

[英]Nodejs sessions not persisting in production

我無法終生解決為什么我的會話或Cookie無法在網址中持續存在的原因

表達

app.use(session({
    secret: 'somethign secrect',
    resave: true,
    saveUninitialized: true,
    cookie: {
        path: '/',
        domain: config.cookieDomain,
        httpOnly: true,
        secure: false,
        maxAge: null,
        cookie: { domain:config.cookieDomain}
    },
    rolling: true
}));

網址/ auth

                //Store cookies for 1 hour
                console.info(options.req.session); //output 1
                options.req.session.HUTBER = 'JAMIE'; 
                console.info(options.req.session); //output 2

網址/ auth /回調**

    console.info('auth', req.session); //output 3

終端輸出

//Output 1
@40000000576c2d6d061dbe14 Session {
@40000000576c2d6d061dc1fc   cookie: 
@40000000576c2d6d061dc1fc    { path: '/',
@40000000576c2d6d061dc1fc      _expires: null,
@40000000576c2d6d061dc5e4      originalMaxAge: null,
@40000000576c2d6d061dc5e4      httpOnly: true,
@40000000576c2d6d061dc9cc      domain: 'mysite.co.uk',
@40000000576c2d6d061dc9cc      secure: false,
@40000000576c2d6d061dcdb4      cookie: { domain: 'mysite.co.uk' } } }

//Output 2
@40000000576c2d6d0624e61c Session {
@40000000576c2d6d0624ea04   cookie: 
@40000000576c2d6d0624ea04    { path: '/',
@40000000576c2d6d0624edec      _expires: null,
@40000000576c2d6d0624edec      originalMaxAge: null,
@40000000576c2d6d0624f1d4      httpOnly: true,
@40000000576c2d6d0624f1d4      domain: 'mysite.co.uk',
@40000000576c2d6d0624f5bc      secure: false,
@40000000576c2d6d0624f5bc      cookie: { domain: 'mysite.co.uk' } },
@40000000576c2d6d0624f9a4   HUTBER: 'JAMIE' }

//Output 3
@40000000576c2d7c14dfd57c auth Session {
@40000000576c2d7c14dfdd4c   cookie: 
@40000000576c2d7c14dfdd4c    { path: '/',
@40000000576c2d7c14dfe134      _expires: null,
@40000000576c2d7c14dfe134      originalMaxAge: null,
@40000000576c2d7c14dfe51c      httpOnly: true,
@40000000576c2d7c14dfe51c      domain: 'mysite.co.uk',
@40000000576c2d7c14dfe904      secure: false,
@40000000576c2d7c14dfecec      cookie: { domain: 'mysite.co.uk' } } }

如何獲得兩條路線之間的數據?

首先,您將默認會話存儲用於會話中間件。 默認會話存儲將您的會話信息存儲在內存中,僅適用於開發和測試目的。 如果您正在使用多個應用程序實例和一個負載平衡器(通常在生產環境中會期望使用負載平衡器),那么默認會話存儲將對您不起作用。 我建議您使用另一個商店,例如connect-redis或其他將會話信息保存到專門商店的商店。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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