如何在我登录的 authController
文件中设置向我返回用户对象?
我试图以这种方式在 exports.register
的 userControllerer
文件中设置 res.json (req.body)
,但是当尚不知道用户是否登录时,这可能会返回用户?我的观点是,正如 authController
中成功一样,它会将登录用户的对象返回给我。
路由/index.js
const express = require('express');
const router = express.Router();
const userController = require('../controllers/userController');
const authController = require('../controllers/authController');
router.get('/register', userController.registerForm);
router.post('/login', authController.login);
router.post('/register',
userController.validateRegister,
userController.register
authController.login
);
module.exports = router;
Controller /userController.js
const mongoose = require('mongoose');
const User = mongoose.model('User');
exports.registerForm = (req, res) => {
res.json(req.body);
};
exports.register = async (req, res, next) => {
const newUser = new User({ email: req.body.email, name: req.body.name })
await User.register(newUser, req.body.password);
next()
}
Controller /authController.js
const passport = require('passport');
exports.login = passport.authenticate('local', {
failureRedirect: '/login',
successRedirect: '/'
})
最佳答案
使用以下实现:
路由/index.js
router.post('/login',
passport.authenticate('local'),
function(req, res) {
// If this function gets called, authentication was successful.
// `req.user` contains the authenticated user.
res.send(req.user);
});
关于javascript - 当用户登录时,如何在passport.authenticate(本地)中返回用户对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59315760/