Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const router = require('express').Router();
- const {body, validationResult} = require('express-validator');
- const {isGuest,isUser} = require('../middlewares/guards')
- router.get('/register',isGuest(), (req, res) => {
- res.render('register');
- });
- router.post('/register',isGuest(),
- body('username').isLength({min: 3}).withMessage('Username must be atleast 3 chars').bail()
- .isAlphanumeric().withMessage('Username must include alphanumeric chars only!'),
- body('rePassword').custom((value, {req}) => {
- if (value != req.body.password) {
- throw new Error('passwords dont match');
- }
- return true;
- }),
- async (req, res) => {
- console.log(req.body);
- const {errors}=validationResult(req);
- try{
- if (errors.length>0){
- console.log(errors)
- throw new Error('Validation error')
- }
- await req.auth.register(req.body.username,req.body.password);
- console.log('user registered')
- res.redirect('/');
- } catch (err) {
- console.log(err)
- const ctx={
- errors,
- userData: {
- username:req.body.username
- }
- };
- res.render('register',ctx)
- }
- })
- router.get('/login',isGuest(), (req, res) => {
- res.render('login');
- });
- router.post('/login',isGuest(), async (req, res) => {
- try{
- console.log(req.body.username, req.body.password)
- await req.auth.login(req.body.username, req.body.password);
- res.redirect('/');
- } catch(err){
- console.log(err.message)
- const ctx={
- errors:[err.message],
- userData: {
- username:req.body.username
- }
- };
- res.render('login',ctx)
- }
- });
- router.get('/logout', (req, res)=>{
- console.log('logging out')
- req.auth.logout();
- res.redirect('/')
- })
- module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement