Проблемы с настройкой файлов cookie в Express и приложении React - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь настроить файлы cookie в моем приложении Express и React, сервер Express размещен на порту 8000, а приложение React размещено на порту 3000. На стороне сервера, когда я пытаюсь отправить ответ на клиент, я продолжаю получать 500: Internal Server Error.

Я думаю, что это проблема с Cors, но я не уверен, что.

Мой express код сервера

const express = require('express'),
      cors    = require('cors'),

const app = express()

// other requirements and stuff not pertaining to cookies

app.use(require("express-session")({
    secret: process.env.LOGIN_SERVER_SECRET,
    resave: false,
    saveUninitialized: false,
    cookie: {
        httpOnly: false,
        secure: false
    }
 }));

 const corsOptions = {
     origin: 'http://localhost:3000',
     methods: "GET,HEAD,POST,PATCH,DELETE,OPTIONS",
     credentials: true,
     allowedHeaders: "Content-Type, Authorization, X-Requested-With"
 }

 app.options("*", cors(corsOptions))

 app.get("/api/cookie", cors(corsOptions),  (req, res) => {
    const options = {
        secure: false,
        httpOnly: false,
        domain: "http://localhost:3000" 
    }

    return res
        .cookie("cookieName", "cookieValue", options)
        .status(200)
        .send("cookie sent")
 })

Я пытаюсь получить файл повара ie из моего файла приложения. js в методе жизненного цикла componentDidMount (), затем console.logging ответа, но ответ - это просто 500: Internal Server Error, о котором я говорил. У меня также есть прокси-сервер между ними.

Вот мой компонент приложения React

import React from 'react'

class App extends React.Component {
    state = {}

    componentDidMount = () => {
        fetch('/api/cookie', {credentials:'include'})
             .then(response => {console.log(response)})
             .catch(err => {console.log(error)})
    }

    render() {
        return (
            // routes to pages
        )
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...