ax ios .get () withCredentials true не аутентифицирует пользователя в React. js - PullRequest
1 голос
/ 03 мая 2020

Я занимаюсь разработкой веб-сайта с использованием стека MERN. После входа в систему пользователь успешно создает сеанс пользователя на mongoDB. Когда я пытаюсь проверить пользовательский сеанс с помощью ax ios .get () с userCredentials: true, сервер не получает сеансовый повар ie (я попытался распечатать req.session.user на стороне сервера и выдает вывод как 'undefined')

Метод аутентификации на клиенте

export const isAuth = () => (dispatch) => {

    axios.defaults.withCredentials = true;

    axios
        .get("http://localhost:5000/users/authchecker", {withCredentials:true})
        .then((res) =>
            dispatch({
                type: AUTH_SUCCESS,
                payload: res.data
            })
        )
        .catch((err) => {
            dispatch({
                type: AUTH_FAIL
            });
        });

}

Метод аутентификации на сервере

exports.authChecker = (req, res) => {
    const sessUser = req.session.user;
    console.log(sessUser); //when I print the req, it says undefined
    if (sessUser) {
        return res.json(sessUser);
    } else {
        return res.status(401).json({ msg: "Unauthorized" });
    }
};

Я использую express сеансов для создания сеанса. Вот приложение. js на стороне сервера

const express = require('express');
const expressLayouts = require('express-ejs-layouts');
const mongoose = require('mongoose');
const passport = require('passport');
const flash = require('connect-flash');
const session = require('express-session');
const cors = require('cors');
const morgan = require("morgan");
const helmet = require('helmet');

const MongoDBStore = require('connect-mongodb-session')(session);

const app = express();
const router = express.Router();
const { HOST, SESS_SECRET, NODE_ENV, IS_PROD, COOKIE_NAME } = require('./config/config');
const MAX_AGE = 1000 * 60 * 2;

//other things

app.use(session({
    name: 'session',
    secret: 'secret',
    resave: true,
    saveUninitialized: false,
    store : mongoDBStore,
    cookie :{
        maxAge : MAX_AGE,
        sameSite: false,
        secure : IS_PROD
    }
}));

//the other things

Я новичок ie в MERN, и я реализовал эти вещи, ссылаясь на онлайн-блог. Я застрял здесь почти 4 дня и теперь я беспомощен. Огромное спасибо за помощь и внимание к этому!

...