| 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, |
| }; |
|
|