javascript - 用户登录后如何在passport.authenticate(本地)中返回用户对象?
问题描述
如何在authController
我登录的文件中设置以将用户对象返回给我?我正在尝试以这种方式res.json (req.body)
在userControllerer
文件中进行设置exports.register
,但这可能会在尚不知道他是否已登录时返回用户?我的观点是,就像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;
控制器/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()
}
控制器/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);
});
推荐阅读
- php - 注意:数组到字符串转换 PHP 错误,SESSION ARRAYS?
- python - 使用 Python 中的有序键列表遍历带有列表的嵌套字典
- python - Scrapy将html元素保存到html文件
- android - 使用 google place api 在 android 中自定义搜索
- git - How to manage absolute file path in visual studio project in source control?
- c# - 使用枚举显示数据时出错
- visual-studio-2015 - GIT 命令致命错误无法访问“https://mygiturl/”:请求的 URL 返回错误:400
- python - 如何使用 find_packages() 打包子目录中的所有文件
- python - 处理来自 python 列表框的错误
- firebase - Firebase Cloud Functions 设置值操作删除触发器始发节点