123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- const User = require('../models/user');
- const passport = require('passport');
- exports.getCurrentUser = function (req, res, next) {
- const user = req.user;
- if(!user) {
- return res.sendStatus(422);
- }
- return res.json(user);
- };
- exports.register = function(req, res) {
- const registerData = req.body
- if (!registerData.email) {
- return res.status(422).json({
- errors: {
- email: 'is required',
- message: 'Email is required'
- }
- })
- }
- if (!registerData.password) {
- return res.status(422).json({
- errors: {
- password: 'is required',
- message: 'Password is required'
- }
- })
- }
- if (registerData.password !== registerData.passwordConfirmation) {
- return res.status(422).json({
- errors: {
- password: 'is not the same as confirmation password',
- message: 'Password is not the same as confirmation password'
- }
- })
- }
- const user = new User(registerData);
- return user.save((errors, savedUser) => {
- if (errors) {
- return res.status(422).json({errors})
- }
- return res.json(savedUser)
- })
- }
- exports.login = function (req, res, next) {
- const { email, password } = req.body
- if (!email) {
- return res.status(422).json({
- errors: {
- email: 'is required',
- message: 'Email is required'
- }
- })
- }
- if (!password) {
- return res.status(422).json({
- errors: {
- password: 'is required',
- message: 'Password is required'
- }
- })
- }
- return passport.authenticate('local', (err, passportUser) => {
- if (err) {
- return next(err)
- }
- if (passportUser) {
- req.login(passportUser, function (err) {
- if (err) { next(err); }
- return res.json(passportUser)
- });
- } else {
- return res.status(422).send({errors: {
- 'message': 'Invalid password or email'
- }})
- }
- })(req, res, next)
- }
- exports.logout = function (req, res) {
- req.logout()
- return res.json({status: 'Session destroyed!'})
- }
|