mirror of
https://github.com/strapi/strapi.git
synced 2025-07-19 15:06:11 +00:00
34 lines
768 B
JavaScript
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,
|
|
};
|