mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-21 10:50:14 +01:00
44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
const express = require('express');
|
|
const { loginController } = require('~/server/controllers/auth/LoginController');
|
|
const { getAppConfig } = require('~/server/services/Config');
|
|
const { createSetBalanceConfig } = require('@librechat/api');
|
|
const middleware = require('~/server/middleware');
|
|
const { Balance } = require('~/db/models');
|
|
|
|
const setBalanceConfig = createSetBalanceConfig({
|
|
getAppConfig,
|
|
Balance,
|
|
});
|
|
|
|
const router = express.Router();
|
|
|
|
// Admin local authentication route - reuses main login controller
|
|
router.post(
|
|
'/login/local',
|
|
middleware.logHeaders,
|
|
middleware.loginLimiter,
|
|
middleware.checkBan,
|
|
middleware.requireLocalAuth, // Standard local auth
|
|
middleware.requireAdmin, // Then check if user is admin
|
|
setBalanceConfig,
|
|
loginController, // Reuse existing login controller
|
|
);
|
|
|
|
// Admin token verification endpoint - simple JWT verify + admin check
|
|
router.get(
|
|
'/verify',
|
|
middleware.requireJwtAuth, // Standard JWT auth
|
|
middleware.requireAdmin, // Then check if user is admin
|
|
(req, res) => {
|
|
// Simple response - user is already verified by middleware
|
|
const { password: _p, totpSecret: _t, __v, ...user } = req.user;
|
|
user.id = user._id.toString();
|
|
res.status(200).json({ user });
|
|
},
|
|
);
|
|
|
|
// TODO: Future OAuth/OpenID routes will be added here
|
|
// router.get('/auth/openid', ...);
|
|
// router.get('/auth/openid/callback', ...);
|
|
|
|
module.exports = router;
|