Alexandre Bodin ceb11379fc Add passportjs and refactor login
Signed-off-by: Alexandre Bodin <bodin.alex@gmail.com>
2020-07-08 10:23:50 +02:00

34 lines
768 B
JavaScript

'use strict';
const passport = require('koa-passport');
const compose = require('koa-compose');
const login = compose([
(ctx, next) => {
return passport.authenticate('local', { session: false }, (err, user, info) => {
if (err) {
ctx.body = { error: 'Internal server error' };
} else if (!user) {
ctx.body = { error: info.error };
} else {
ctx.state.user = user;
return next();
}
})(ctx, next);
},
ctx => {
const { user } = ctx.state;
ctx.body = {
data: {
token: strapi.admin.services.auth.createJwtToken(user),
user: strapi.admin.services.auth.sanitizeUser(ctx.state.user), // TODO: fetch more detailed info
},
};
},
]);
module.exports = {
login,
};