mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-01-06 02:28:51 +01:00
refactor: re-use logic for admin routes
This commit is contained in:
parent
fbe0def2fa
commit
a1f9f3dd39
7 changed files with 47 additions and 203 deletions
|
|
@ -1,25 +1,40 @@
|
|||
const express = require('express');
|
||||
const { adminVerifyController } = require('~/server/controllers/auth/AdminVerifyController');
|
||||
const { adminLoginController } = require('~/server/controllers/auth/AdminLoginController');
|
||||
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
|
||||
// Admin local authentication route - reuses main login controller
|
||||
router.post(
|
||||
'/login/local',
|
||||
middleware.logHeaders,
|
||||
middleware.loginLimiter,
|
||||
middleware.checkBan,
|
||||
middleware.requireAdminAuth, // Uses local auth strategy + admin role validation
|
||||
adminLoginController,
|
||||
middleware.requireLocalAuth, // Standard local auth
|
||||
middleware.requireAdmin, // Then check if user is admin
|
||||
setBalanceConfig,
|
||||
loginController, // Reuse existing login controller
|
||||
);
|
||||
|
||||
// Admin token verification endpoint
|
||||
// Admin token verification endpoint - simple JWT verify + admin check
|
||||
router.get(
|
||||
'/verify',
|
||||
middleware.requireAdminJwtAuth, // Validates JWT + admin role
|
||||
adminVerifyController,
|
||||
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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue