javascript - 当用户登录时,如何在passport.authenticate(本地)中返回用户对象?

标签 javascript node.js express

如何在我登录的 authController 文件中设置向我返回用户对象? 我试图以这种方式在 exports.registeruserControllerer 文件中设置 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/

相关文章:

javascript - 防止 CSS 覆盖 JS CSS

node.js - Heroku 错误代码 : Elifecycle +more unknowns

javascript - 将 csrf token 公开给位于不同域的客户端

javascript - 使用 JS 将 JSON 文件发送到 Express 服务器

javascript - 如何监听 TCP 数据包获取数据并使用 node.js 发送 UDP

javascript - 刷新后 socket.io 客户端多次监听同一事件

javascript - 如何在Firestore中正确使用arrayUnion?

javascript - 使用数据发布 jQuery 移动更改页面

javascript - 如何计算对象数组中每个键的出现次数?

node.js - 如何使用 AWS EBextensions 编译 Vue Js 组件?