Express & React - Сохранить сеанс после перехода к стороннему API - PullRequest
0 голосов
/ 07 мая 2020

Для моего приложения Express я сохраняю сеанс, когда пользователь входит в систему. В React я использую сторонний API, поэтому, когда пользователь успешно входит в систему (и создается сеанс), он направляет их в URL-адрес авторизации API, а затем перенаправляет их на домашнюю страницу приложения.

Как только они вернутся на домашнюю страницу, сеанс больше не сохраняется.

Может ли кто-нибудь сказать мне, как я могу исправить это, чтобы сеанс все еще сохранялся после перенаправления на домашнюю страницу?

Я устанавливаю его здесь в Express. Когда ответ json равен success: true, пользователь перенаправляется, а затем возвращается на домашнюю страницу.

router.post('/login/:username/:password', (req, res) => {
const username = req.param('username');
const password = req.param('password');
    return User
        .findOne({username:username})
        .then((user) => user.authenticate(password)) // do this to the found user in db
        .then(auth => {
            if(auth.user !== false) {
                req.session.user = auth.user.id
            }
            res.json({success: auth.user !== false}); // will be true if its authorized and false if not
        })
        .catch((err) => {
            console.log("err.message"); // shows what the error is
            }
        );
});

Конфигурация моего сеанса в моем приложении. js файл в моем приложении Express:

const express      = require('express');
const mongoose     = require('mongoose');
const CONFIG       = require('./config.json');
const session      = require('express-session');
const MongoStore   = require('connect-mongo')(session);

mongoose
    .connect(CONFIG.mongoUrl, {
        useNewUrlParser: true,
        useUnifiedTopology:true
    })
    .then(() => console.log('Connected to MongoDB'))
    .catch(err => {
        console.log(err.message);
        console.log('Not connected to MongoDB')
        process.exit(1);
    });


// Create and configure application
const app = express();

// configure sessions
app.use(session({
    saveUninitialized : true,
    secret            : CONFIG.sessionSecret,
    resave            : false,
    store             : new MongoStore({
        mongooseConnection: mongoose.connection
    })
}));

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