【问题标题】:firebase express-session dosn't store nothing in the cookiesfirebase express-session 不会在 cookie 中存储任何内容
【发布时间】:2021-02-27 06:07:19
【问题描述】:

这是我的代码:

const functions = require('firebase-functions');
const express = require('express');
const session = require('express-session');
const FirebaseStore = require('connect-session-firebase')(session);
const firebase = require('firebase-admin');
const cookieParser = require('cookie-parser');

const ref = firebase.initializeApp(
  functions.config().firebase
);

const app = express();
app.use(cookieParser());
app.set('trust proxy', 1);

app.use(session({
  store: new FirebaseStore({
    database: ref.database()
  }),
  secret: 'abigsigrettotheseeiosnofthmbiith765huig',
  resave: true,
  saveUninitialized: true,
  cookie: { maxAge: 60000 }
}));

app.get('/', function(req, res, next) {
  console.log(req.session);
  req.session.username='xyz';
  res.send('Filling the session with data');
});

app.get('/bar', function(req, res, next) {
  console.log(req.session);
  var sessionData = req.session.username;
  res.send(`This will print the attribute I set earlier: ${sessionData}`);
});


exports.app = functions.https.onRequest(app);

当我运行它时,它会在数据库中创建新会话。

每次我刷新页面时,都会有一个新会话。

我当然希望只创建一个会话,

并且在刷新时,这个会话只会被更新,或者从那里获取数据。不要每次都创建一个新的。

检查 cookie - 告诉我没有保存/创建任何 cookie。

我已经为此工作了好几个小时......

【问题讨论】:

    标签: node.js firebase cookies firebase-realtime-database express-session


    【解决方案1】:

    当我使用 firebase 功能和托管时,这很令人沮丧,但可以通过在会话中简单地设置 name:"__session" 来解决。

    app.use(session({
      store: new FirebaseStore({
        database: ref.database()
      }),
      name:"__session
      ...
    

    【讨论】:

      猜你喜欢
      • 2017-06-20
      • 2016-02-08
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      • 2020-11-16
      • 2016-11-12
      • 2019-10-20
      • 2015-05-18
      相关资源
      最近更新 更多