Не удалось установить повар ie с помощью функции извлечения - PullRequest
0 голосов
/ 18 марта 2020

Мой express сервер работает на порту 3001.

В РЕАКТИВНОМ ФАЙЛЕ

На моей странице входа в систему.

fetch('http://localhost:3001/api/login',{
        method:'POST',
        headers: {
            Accept: 'application/json',
            "Content-Type": "application/json",
        },
        body:JSON.stringify(this.state),
        credentials: 'same-origin',
        mode:'cors'
    }).then((respo)=>{
        console.log(respo);
    })

на домашней странице

fetch('http://localhost:3001/api/home',{credentials:'same-origin'}).then((response)=>{
        return response.json();
    }).then((response)=>{
        this.setState({
            isLoading:false,
            userData:response.user,
            posts:response.posts
        })
    })

когда я установил своего повара ie на странице входа в систему, из инструментов разработчика я мог видеть, что мой повар ie настраивается. Но я не получаю set-Cook ie на домашней странице. Где я иду не так здесь?

РЕДАКТИРОВАТЬ: настройка повара ie (на стороне сервера)

    const express = require('express');
const mongoose = require('mongoose');
const cors = require('cors');
const bodyParser = require('body-parser');
const sessions = require('client-sessions');
const Post = require('./model/post');
const User = require('./model/user');

mongoose.connect('mongodb://localhost/social_network',{
    useNewUrlParser:true,
    useCreateIndex:true
});

const app = express();
app.use(cors({
    origin:"http://127.0.0.1:3000"
}));
app.use(bodyParser.json())
app.use(
    bodyParser.urlencoded({
      extended: true
    })
  );

app.use(sessions({
    cookieName:'users',
    secret:'ouououou',
    duration: 24*60*60*60
}))

const auth= async(req,res,next)=>{
    try{
        console.log(req.users.user);
        const user = await User.findOne({email:req.users.email,password:req.users.password});
        if(!user){
            throw new Error("No User Found");
        }else{
            next();
        }
    }catch(e){
        console.log(e);
        res.status(404).send({error:e});
    }

}

app.post("/api/login",async (req,res)=>{
    try{
        console.log(req.body.email);
        const user = await 
User.findOne({email:req.body.email,password:req.body.password});
        if(!user){
            throw new Error("User Not Found");
        }else{
            req.users.user = user;
            console.log(req.users.user);
            res.status(200).send(req.user);
        }
    }catch(e){
        console.log(e);
        res.status(404).send({error:e})
    }
})


app.get('/api/home',auth,async (req,res)=>{
    console.log("yo");
    await req.user.populate('post').execPopulate();
    const data={user:user,post:user.post}
    res.send(data)
    });


app.listen("3001",()=>{
    console.log("on");
});

1 Ответ

0 голосов
/ 18 марта 2020

Ваш сервер API - localhost:3001.

Ваша страница загружена из 127.0.0.1:3000

Это различного происхождения .

Вы сказали credentials: 'same-origin', поэтому учетные данные между источниками, включая файлы cookie, отключены.

Вам необходимо include для отправки файлов cookie для вызовов между источниками.

См. Также: MDN .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...