refactor passport nr2
This commit is contained in:
parent
cf4265eebf
commit
49bc6ff703
|
@ -37,78 +37,38 @@ const router = express.Router();
|
|||
|
||||
router.get('/facebook', passport.authenticate('facebook',
|
||||
{ scope: ['email'] }));
|
||||
router.get('/facebook/return', (req: Request, res: Response, next) => {
|
||||
passport.authenticate('facebook', (err, user, info) => {
|
||||
if (err) return next(err);
|
||||
if (!user) return next(new Error(info.message));
|
||||
req.logIn(user, (error) => {
|
||||
if (error) return next(error);
|
||||
return res.redirect('/');
|
||||
});
|
||||
return null;
|
||||
})(req, res, next);
|
||||
});
|
||||
router.get('/facebook/return', passport.authenticate('facebook', {
|
||||
successRedirect: '/',
|
||||
}));
|
||||
|
||||
router.get('/discord', passport.authenticate('discord',
|
||||
{ scope: ['identify', 'email'] }));
|
||||
router.get('/discord/return', (req: Request, res: Response, next) => {
|
||||
passport.authenticate('discord', (err, user, info) => {
|
||||
if (err) return next(err);
|
||||
if (!user) return next(new Error(info.message));
|
||||
req.logIn(user, (error) => {
|
||||
if (error) return next(error);
|
||||
return res.redirect('/');
|
||||
});
|
||||
return null;
|
||||
})(req, res, next);
|
||||
});
|
||||
router.get('/discord/return', passport.authenticate('discord', {
|
||||
successRedirect: '/',
|
||||
}));
|
||||
|
||||
router.get('/google', passport.authenticate('google',
|
||||
{ scope: ['email', 'profile'] }));
|
||||
router.get('/google/return', (req: Request, res: Response, next) => {
|
||||
passport.authenticate('google', (err, user, info) => {
|
||||
if (err) return next(err);
|
||||
if (!user) return next(new Error(info.message));
|
||||
req.logIn(user, (error) => {
|
||||
if (error) return next(error);
|
||||
return res.redirect('/');
|
||||
});
|
||||
return null;
|
||||
})(req, res, next);
|
||||
});
|
||||
router.get('/google/return', passport.authenticate('google', {
|
||||
successRedirect: '/',
|
||||
}));
|
||||
|
||||
router.get('/vk', passport.authenticate('vkontakte',
|
||||
{ scope: ['email'] }));
|
||||
router.get('/vk/return', (req: Request, res: Response, next) => {
|
||||
passport.authenticate('vkontakte', (err, user, info) => {
|
||||
if (err) return next(err);
|
||||
if (!user) return next(new Error(info.message));
|
||||
req.logIn(user, (error) => {
|
||||
if (error) return next(error);
|
||||
return res.redirect('/');
|
||||
});
|
||||
return null;
|
||||
})(req, res, next);
|
||||
});
|
||||
router.get('/vk/return', passport.authenticate('vkontakte', {
|
||||
successRedirect: '/',
|
||||
}));
|
||||
|
||||
router.get('/reddit', passport.authenticate('reddit',
|
||||
{ duration: 'temporary', state: 'foo' }));
|
||||
router.get('/reddit/return', (req: Request, res: Response, next) => {
|
||||
passport.authenticate('reddit', (err, user, info) => {
|
||||
if (err) return next(err);
|
||||
if (!user) return next(new Error(info.message));
|
||||
req.logIn(user, (error) => {
|
||||
if (error) return next(error);
|
||||
return res.redirect('/');
|
||||
});
|
||||
return null;
|
||||
})(req, res, next);
|
||||
});
|
||||
router.get('/reddit/return', passport.authenticate('reddit', {
|
||||
successRedirect: '/',
|
||||
}));
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
router.use((err, req, res, next) => {
|
||||
const host = getHostFromRequest(req);
|
||||
logger.info(`Authentification error ${err}`);
|
||||
logger.info(`Authentification error: ${err.message}`);
|
||||
const index = getHtml(
|
||||
'OAuth Authentification',
|
||||
err.message, host, req.lang,
|
||||
|
@ -116,12 +76,12 @@ router.use((err, req, res, next) => {
|
|||
res.status(400).send(index);
|
||||
});
|
||||
|
||||
router.get('/verify', verify);
|
||||
|
||||
/*
|
||||
* JSON APIs
|
||||
*/
|
||||
|
||||
router.get('/verify', verify);
|
||||
|
||||
router.get('/logout', logout);
|
||||
|
||||
router.get('/resend_verify', resend_verify);
|
||||
|
@ -136,6 +96,8 @@ router.post('/delete_account', delete_account);
|
|||
|
||||
router.post('/restore_password', restore_password);
|
||||
|
||||
router.post('/register', register);
|
||||
|
||||
router.post('/local', passport.authenticate('json'), async (req, res) => {
|
||||
const { user } = req;
|
||||
const me = await getMe(user, req.lang);
|
||||
|
@ -145,44 +107,9 @@ router.post('/local', passport.authenticate('json'), async (req, res) => {
|
|||
me,
|
||||
});
|
||||
});
|
||||
/*
|
||||
router.post('/local', async (req: Request, res: Response, next) => {
|
||||
passport.authenticate('json', async (err, user, info) => {
|
||||
if (!user) {
|
||||
res.status(400);
|
||||
res.json({
|
||||
errors: [info.message],
|
||||
});
|
||||
return;
|
||||
}
|
||||
logger.info(`User ${user.id} logged in with mail/password.`);
|
||||
|
||||
req.logIn(user, async (e) => {
|
||||
if (e) {
|
||||
logger.warn(`Login Error:${e.message}`);
|
||||
res.json({
|
||||
success: false,
|
||||
errors: ['Failed to establish session. Please try again later :('],
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
user.ip = req.user.ip;
|
||||
const me = await getMe(user, req.lang);
|
||||
res.json({
|
||||
success: true,
|
||||
me,
|
||||
});
|
||||
});
|
||||
})(req, res, next);
|
||||
});
|
||||
*/
|
||||
|
||||
router.post('/register', register);
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
router.use((err, req, res, next) => {
|
||||
console.warn(`ERROR HANDLER CALLED ${err.message}`);
|
||||
res.status(400);
|
||||
res.json({
|
||||
errors: [err.message],
|
||||
|
|
|
@ -1,16 +1,13 @@
|
|||
/*
|
||||
* verify mail address
|
||||
* @flow
|
||||
*/
|
||||
|
||||
import type { Request, Response } from 'express';
|
||||
|
||||
import socketEvents from '../../../socket/SocketEvents';
|
||||
import getHtml from '../../../ssr-components/RedirectionPage';
|
||||
import { getHostFromRequest } from '../../../utils/ip';
|
||||
import mailProvider from '../../../core/mail';
|
||||
|
||||
export default async (req: Request, res: Response) => {
|
||||
export default async (req, res) => {
|
||||
const { token } = req.query;
|
||||
const { lang } = req;
|
||||
const { t } = req.ttag;
|
||||
|
|
Loading…
Reference in New Issue
Block a user