refactor passport
This commit is contained in:
parent
42ba4c82b6
commit
038cb8b6e1
|
@ -56,11 +56,11 @@ passport.use(new JsonStrategy({
|
|||
where: query,
|
||||
});
|
||||
if (!reguser) {
|
||||
done(null, false, { message: 'Name or Email does not exist!' });
|
||||
done(new Error('Name or Email does not exist!'));
|
||||
return;
|
||||
}
|
||||
if (!compareToHash(password, reguser.password)) {
|
||||
done(null, false, { message: 'Incorrect password!' });
|
||||
done(new Error('Incorrect password!'));
|
||||
return;
|
||||
}
|
||||
const user = new User();
|
||||
|
|
|
@ -7,6 +7,7 @@ import express from 'express';
|
|||
|
||||
import logger from '../../../core/logger';
|
||||
import { getHostFromRequest } from '../../../utils/ip';
|
||||
import passport from '../../../core/passport';
|
||||
|
||||
import register from './register';
|
||||
import verify from './verify';
|
||||
|
@ -30,8 +31,9 @@ import getMe from '../../../core/me';
|
|||
|
||||
const router = express.Router();
|
||||
|
||||
export default (passport) => {
|
||||
router.get('/logout', logout);
|
||||
/*
|
||||
* third party logon
|
||||
*/
|
||||
|
||||
router.get('/facebook', passport.authenticate('facebook',
|
||||
{ scope: ['email'] }));
|
||||
|
@ -103,8 +105,8 @@ export default (passport) => {
|
|||
})(req, res, next);
|
||||
});
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
router.use((err, req, res, next) => {
|
||||
if (err) {
|
||||
const host = getHostFromRequest(req);
|
||||
logger.info(`Authentification error ${err}`);
|
||||
const index = getHtml(
|
||||
|
@ -112,11 +114,12 @@ export default (passport) => {
|
|||
err.message, host, req.lang,
|
||||
);
|
||||
res.status(400).send(index);
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* JSON APIs
|
||||
*/
|
||||
|
||||
router.get('/verify', verify);
|
||||
|
||||
router.get('/logout', logout);
|
||||
|
@ -133,8 +136,16 @@ export default (passport) => {
|
|||
|
||||
router.post('/restore_password', restore_password);
|
||||
|
||||
// while previous auth methosed work by redirect,
|
||||
// local strategy is an json API
|
||||
router.post('/local', passport.authenticate('json'), async (req, res) => {
|
||||
const { user } = req;
|
||||
const me = await getMe(user, req.lang);
|
||||
logger.info(`User ${user.id} logged in with mail/password.`);
|
||||
res.json({
|
||||
success: true,
|
||||
me,
|
||||
});
|
||||
});
|
||||
/*
|
||||
router.post('/local', async (req: Request, res: Response, next) => {
|
||||
passport.authenticate('json', async (err, user, info) => {
|
||||
if (!user) {
|
||||
|
@ -165,8 +176,17 @@ export default (passport) => {
|
|||
});
|
||||
})(req, res, next);
|
||||
});
|
||||
*/
|
||||
|
||||
router.post('/register', register);
|
||||
|
||||
return router;
|
||||
};
|
||||
// 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],
|
||||
});
|
||||
});
|
||||
|
||||
export default router;
|
||||
|
|
|
@ -85,6 +85,6 @@ router.get('/chathistory', chatHistory);
|
|||
|
||||
router.get('/me', me);
|
||||
|
||||
router.use('/auth', auth(passport));
|
||||
router.use('/auth', auth);
|
||||
|
||||
export default router;
|
||||
|
|
|
@ -108,10 +108,7 @@ class RedisStore extends Store {
|
|||
const key = this.prefix + sid;
|
||||
this.client
|
||||
.del(key)
|
||||
.then((amount) => {
|
||||
if (amount === 0) {
|
||||
throw new Error('No such session exists');
|
||||
}
|
||||
.then(() => {
|
||||
cb(null);
|
||||
})
|
||||
.catch((err) => {
|
||||
|
|
Loading…
Reference in New Issue
Block a user