Как отправить файл cookie сеанса Firebase с сервера на веб-интерфейс - PullRequest
0 голосов
/ 28 сентября 2019

Проблема, с которой я сталкиваюсь, заключается в том, что файлы cookie сеанса, созданные на сервере, по-видимому, недоступны в браузере.Я использую файлы cookie сеанса Firebase, которые можно найти здесь: (https://firebase.google.com/docs/auth/admin/manage-cookies)

Ниже приведен код, который у меня есть

Сервер

  • index.js
const express = require('express');
const cors = require('cors');
const cookieParser = require('cookie-parser');

const app = express();

app.use(cookieParser());
app.use(cors());
app.use(express.urlencoded({extended: true}));
app.use(express.json());
  • user.js
userRouter.post('/sessionLogin', (req, res) => {
  console.log("Got session login request");
  // Get the ID token passed and the CSRF token.
  const idToken = req.body.idToken.toString();

  // Set session expiration to 5 days.
  const expiresIn = 60 * 60 * 24 * 5 * 1000;

  fb.auth().createSessionCookie(idToken, {expiresIn})
    .then((sessionCookie) => {
      const options = {maxAge: expiresIn, httpOnly: true, secure: true};
      res.setHeader('Cache-Control', 'private');
      res.cookie('__session', sessionCookie, options);
      return res.send(JSON.stringify({status: 'success'}));
    }).catch((error) => {
        res.status(401).send('UNAUTHORIZED REQUEST!');
    });
});

Frontend

fb.auth.signInWithEmailAndPassword(email, password).then(user => {
   return user.user.getIdToken().then(idToken => {
        console.log(idToken);
       //document.cookie = '__session=' + idToken + ';max-age=3600';
       return ref.postIdTokenToSessionLogin(idToken);
   });
})

Когда я использую почтальона, я могучтобы увидеть сессию, созданную как ожидалось картинка сеанса почтальона

Мой сервер и интерфейс размещены в разных доменах.Я не могу обернуть голову вокруг этого, любые идеи будут высоко оценены.

Спасибо,

1 Ответ

0 голосов
/ 28 сентября 2019

Вы не можете делиться файлами cookie между доменами (если они не являются поддоменами).См. Междоменные файлы cookie , где можно найти соответствующее обсуждение.

...