diff --git a/public/openapi/write/login.yaml b/public/openapi/write/login.yaml index 001cd5da01..d594e4b30f 100644 --- a/public/openapi/write/login.yaml +++ b/public/openapi/write/login.yaml @@ -15,9 +15,14 @@ post: username: type: string example: admin + required: true password: type: string example: '123456' + required: true + session: + type: number + example: 1 responses: '200': description: credentials successfully validated diff --git a/src/controllers/write/utilities.js b/src/controllers/write/utilities.js index c0d275f55a..5e5326c8a7 100644 --- a/src/controllers/write/utilities.js +++ b/src/controllers/write/utilities.js @@ -23,7 +23,7 @@ Utilities.ping.post = (req, res) => { Utilities.login = (req, res) => { res.locals.continueLogin = async (strategy, req, res) => { - const { username, password } = req.body; + const { username, password, session } = req.body; const userslug = slugify(username); const uid = await user.getUidByUserslug(userslug); @@ -37,8 +37,13 @@ Utilities.login = (req, res) => { } if (ok) { - const userData = await user.getUsers([uid], uid); - helpers.formatApiResponse(200, res, userData.pop()); + const userData = (await user.getUsers([uid], uid)).pop(); + + if (parseInt(session, 10) === 1) { + await authenticationController.doLogin(req, userData.uid); + } + + helpers.formatApiResponse(200, res, userData); } else { helpers.formatApiResponse(403, res); }