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',
|
router.get('/facebook', passport.authenticate('facebook',
|
||||||
{ scope: ['email'] }));
|
{ scope: ['email'] }));
|
||||||
router.get('/facebook/return', (req: Request, res: Response, next) => {
|
router.get('/facebook/return', passport.authenticate('facebook', {
|
||||||
passport.authenticate('facebook', (err, user, info) => {
|
successRedirect: '/',
|
||||||
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', passport.authenticate('discord',
|
router.get('/discord', passport.authenticate('discord',
|
||||||
{ scope: ['identify', 'email'] }));
|
{ scope: ['identify', 'email'] }));
|
||||||
router.get('/discord/return', (req: Request, res: Response, next) => {
|
router.get('/discord/return', passport.authenticate('discord', {
|
||||||
passport.authenticate('discord', (err, user, info) => {
|
successRedirect: '/',
|
||||||
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', passport.authenticate('google',
|
router.get('/google', passport.authenticate('google',
|
||||||
{ scope: ['email', 'profile'] }));
|
{ scope: ['email', 'profile'] }));
|
||||||
router.get('/google/return', (req: Request, res: Response, next) => {
|
router.get('/google/return', passport.authenticate('google', {
|
||||||
passport.authenticate('google', (err, user, info) => {
|
successRedirect: '/',
|
||||||
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', passport.authenticate('vkontakte',
|
router.get('/vk', passport.authenticate('vkontakte',
|
||||||
{ scope: ['email'] }));
|
{ scope: ['email'] }));
|
||||||
router.get('/vk/return', (req: Request, res: Response, next) => {
|
router.get('/vk/return', passport.authenticate('vkontakte', {
|
||||||
passport.authenticate('vkontakte', (err, user, info) => {
|
successRedirect: '/',
|
||||||
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', passport.authenticate('reddit',
|
router.get('/reddit', passport.authenticate('reddit',
|
||||||
{ duration: 'temporary', state: 'foo' }));
|
{ duration: 'temporary', state: 'foo' }));
|
||||||
router.get('/reddit/return', (req: Request, res: Response, next) => {
|
router.get('/reddit/return', passport.authenticate('reddit', {
|
||||||
passport.authenticate('reddit', (err, user, info) => {
|
successRedirect: '/',
|
||||||
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);
|
|
||||||
});
|
|
||||||
|
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
router.use((err, req, res, next) => {
|
router.use((err, req, res, next) => {
|
||||||
const host = getHostFromRequest(req);
|
const host = getHostFromRequest(req);
|
||||||
logger.info(`Authentification error ${err}`);
|
logger.info(`Authentification error: ${err.message}`);
|
||||||
const index = getHtml(
|
const index = getHtml(
|
||||||
'OAuth Authentification',
|
'OAuth Authentification',
|
||||||
err.message, host, req.lang,
|
err.message, host, req.lang,
|
||||||
|
@ -116,12 +76,12 @@ router.use((err, req, res, next) => {
|
||||||
res.status(400).send(index);
|
res.status(400).send(index);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
router.get('/verify', verify);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* JSON APIs
|
* JSON APIs
|
||||||
*/
|
*/
|
||||||
|
|
||||||
router.get('/verify', verify);
|
|
||||||
|
|
||||||
router.get('/logout', logout);
|
router.get('/logout', logout);
|
||||||
|
|
||||||
router.get('/resend_verify', resend_verify);
|
router.get('/resend_verify', resend_verify);
|
||||||
|
@ -136,6 +96,8 @@ router.post('/delete_account', delete_account);
|
||||||
|
|
||||||
router.post('/restore_password', restore_password);
|
router.post('/restore_password', restore_password);
|
||||||
|
|
||||||
|
router.post('/register', register);
|
||||||
|
|
||||||
router.post('/local', passport.authenticate('json'), async (req, res) => {
|
router.post('/local', passport.authenticate('json'), async (req, res) => {
|
||||||
const { user } = req;
|
const { user } = req;
|
||||||
const me = await getMe(user, req.lang);
|
const me = await getMe(user, req.lang);
|
||||||
|
@ -145,44 +107,9 @@ router.post('/local', passport.authenticate('json'), async (req, res) => {
|
||||||
me,
|
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
|
// eslint-disable-next-line no-unused-vars
|
||||||
router.use((err, req, res, next) => {
|
router.use((err, req, res, next) => {
|
||||||
console.warn(`ERROR HANDLER CALLED ${err.message}`);
|
|
||||||
res.status(400);
|
res.status(400);
|
||||||
res.json({
|
res.json({
|
||||||
errors: [err.message],
|
errors: [err.message],
|
||||||
|
|
|
@ -1,16 +1,13 @@
|
||||||
/*
|
/*
|
||||||
* verify mail address
|
* verify mail address
|
||||||
* @flow
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import type { Request, Response } from 'express';
|
|
||||||
|
|
||||||
import socketEvents from '../../../socket/SocketEvents';
|
import socketEvents from '../../../socket/SocketEvents';
|
||||||
import getHtml from '../../../ssr-components/RedirectionPage';
|
import getHtml from '../../../ssr-components/RedirectionPage';
|
||||||
import { getHostFromRequest } from '../../../utils/ip';
|
import { getHostFromRequest } from '../../../utils/ip';
|
||||||
import mailProvider from '../../../core/mail';
|
import mailProvider from '../../../core/mail';
|
||||||
|
|
||||||
export default async (req: Request, res: Response) => {
|
export default async (req, res) => {
|
||||||
const { token } = req.query;
|
const { token } = req.query;
|
||||||
const { lang } = req;
|
const { lang } = req;
|
||||||
const { t } = req.ttag;
|
const { t } = req.ttag;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user