Page 412 - Nodejs 교과서 개정2판
P. 412

ഥਗоੑ ಕ੉૑ח ۽Ӓੋਸ ೞ૑ ঋ਷ ࢎۈীѱ݅ ࠁৈঠ ೤פ׮  ٮۄࢲ isNotLoggedIn ޷ٜਝয۽ req.isAu

         thenticated()о falseੌ ٸ݅ nextܳ ഐ୹ೞب۾ ೮णפ׮

         ۽Ӓੋ ৈࠗ۽݅ ޷ٜਝযܳ ٜ݅ ࣻ ੓ח Ѫ੉ ইפۄ ౹۽੔ ৈࠗ  ҙܻ੗ ৈࠗ ١੄ ޷ٜਝযܳ ٜ݅ ࣻب ੓

         ਵ޲۽ ׮নೞѱ ഝਊೡ ࣻ ੓णפ׮  res.locals.user ࣘࢿী req.userܳ ֍਷ Ѫਸ ઱ݾ೧઱ࣁਃ  ք੸झী
         ࢲ user ё୓ܳ ా೧ ࢎਊ੗ ੿ࠁী ੽Ӕೡ ࣻ ੓ѱ غ঻णפ׮


         ੉ઁ ഥਗоੑ  ۽Ӓੋ  ۽Ӓইਓ ۄ਋ఠܳ ੘ࢿ೧ࠇद׮

          routes/auth.js

           const	express	=	require('express');
           const	passport	=	require('passport');
           const	bcrypt	=	require('bcrypt');
           const	{	isLoggedIn,	isNotLoggedIn	}	=	require('./middlewares');
           const	User	=	require('../models/user');


           const	router	=	express.Router();
           ➊
           router.post('/join',	isNotLoggedIn,	async	(req,	res,	next)	=>	{
           		const	{	email,	nick,	password	}	=	req.body;
           		try	{
           				const	exUser	=	await	User.findOne({	where:	{	email	}	});
           				if	(exUser)	{
           						return	res.redirect('/join?error=exist');
           				}
           				const	hash	=	await	bcrypt.hash(password,	12);
           				await	User.create({
           						email,
           						nick,
           						password:	hash,
           				});
           				return	res.redirect('/');
           		}	catch	(error)	{
           				console.error(error);
           				return	next(error);
           		}
           });
           ➋
           router.post('/login',	isNotLoggedIn,	(req,	res,	next)	=>	{
           		passport.authenticate('local',	(authError,	user,	info)	=>	{
           				if	(authError)	{
           						console.error(authError);
           						return	next(authError);
           				}
   407   408   409   410   411   412   413   414   415   416   417