| const { logger } = require('@librechat/data-schemas'); | |
| const { generate2FATempToken } = require('~/server/services/twoFactorService'); | |
| const { setAuthTokens } = require('~/server/services/AuthService'); | |
| const loginController = async (req, res) => { | |
| try { | |
| if (!req.user) { | |
| return res.status(400).json({ message: 'Invalid credentials' }); | |
| } | |
| if (req.user.twoFactorEnabled) { | |
| const tempToken = generate2FATempToken(req.user._id); | |
| return res.status(200).json({ twoFAPending: true, tempToken }); | |
| } | |
| const { password: _p, totpSecret: _t, __v, ...user } = req.user; | |
| user.id = user._id.toString(); | |
| const token = await setAuthTokens(req.user._id, res); | |
| return res.status(200).send({ token, user }); | |
| } catch (err) { | |
| logger.error('[loginController]', err); | |
| return res.status(500).json({ message: 'Something went wrong' }); | |
| } | |
| }; | |
| module.exports = { | |
| loginController, | |
| }; | |