не может получить значения из req.session - PullRequest
0 голосов
/ 09 марта 2020

Я новичок в nodejs, я использую express -сессию для своего проекта. Я не могу получить значения сессий нигде, кроме моего маршрута входа. Я вижу, что у многих людей возникают те же проблемы. Любая рекомендация или помощь может быть классно ! всем вам хорошего дня! Вот мой маршрут входа в систему

route.post('/verify', (req, res) => {
    const email = req.body.email;
    const pass = req.body.password;
    userModel.findOne({ email: email }, (err, data) => {
        if (err) {
            console.log(err);
            res.status(500).json({
                success: false,
                message: error.message
            });
        }
        else {
            if (data !== null) {
                if (!bcryptjs.compareSync(pass, data.password)
                ) {
                    res.status(400).json({
                        success: false,
                        message: "Wrong Password"
                    })
                }
                else {
                    req.session.currentUser = {
                        email: data.email,
                    };

                    console.log(req.session);
                    res.status(200).json({
                        success: true,
                        message: "Login Success",
                        data: {
                            email: data.email,
                            name: data.name,
                            id:data.id,
                        }
                    })
                }
            }
            else {
                res.status(404).json({
                    success: false,
                    message: "Email doesn't exist"
                })
            }
        }

    })
})

Вот мой сервер. js setup:

const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const cors = require('cors');
const session = require('express-session');
const bcryptjs = require('bcryptjs');
const passport = require('passport');
var Schema = mongoose.Schema;
require('./passport/facebook-auth')(passport);
require('dotenv').config();


const passportSetup = require('./passport/google-auth');
const authRoutes = require('./routes/auth-routes');
const userRoutes = require('./user/user.routes')
const userModel = require('./user/user.schema');


// connect to mongodb
mongoose.connect('mongodb://' + process.env.USER + ':' + process.env.PASS + '@localhost:27017/' + process.env.DATABASE + '?authSource=admin', { useNewUrlParser: true, useUnifiedTopology: true }, (e) => {
    //FIXME: tim cach viet khac
    if (e)
        throw e;
    else {
        console.log("MongoDB Connected...");

        // basic init
        const server = express();
        server.use(session({
            secret: 'keyboard cat',
            resave: true,
            saveUninitialized: false,
        }));
        server.use(express.static('public'));
        // set up cors to allow us to accept requests from our client
        server.use(cors({
                origin: "http://localhost:3000", // allow to server to accept request from different origin
                methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
                credentials: true // allow session cookie from browser to pass through
            })
        );

        server.use(bodyParser.json());

        // set up session cookies


        // initialize passport

        server.use(passport.initialize());
        server.use(passport.session());

        // set up route
        server.use('/auth', authRoutes);
        server.use('/users', userRoutes);

        server.listen(process.env.PORT || 5000, (err) => {
            if (err)
                throw err;
            else
                console.log("Server listening on port 5000...");
                console.log('hadm x tanhng...');
                console.log('ununneee here we come');
        });
    }
})

после входа в систему сеанс уничтожено автоматически спасибо еще раз

1 Ответ

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

У меня к вам вопрос - вы можете показать код с app.use(sessionMiddleware), где sessionMiddleware - это express -сессия?

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