Frontend API config and SSO toggles
Some checks failed
continuous-integration/drone/push Build was killed
Some checks failed
continuous-integration/drone/push Build was killed
This commit is contained in:
@@ -41,7 +41,7 @@ export default function Auth({ onLogin }) {
|
||||
try {
|
||||
await onLogin(username, password, isLogin);
|
||||
} catch (err) {
|
||||
setError(err.message || 'Ошибка авторизации');
|
||||
setError(err?.response?.data?.detail || err.message || 'Ошибка авторизации');
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
@@ -182,7 +182,7 @@ export default function Auth({ onLogin }) {
|
||||
{isLogin && (
|
||||
<div className={`mt-6 text-center text-sm ${currentTheme.textSecondary}`}>
|
||||
<p>Учётные данные по умолчанию:</p>
|
||||
<p className={`${currentTheme.text} font-mono mt-1`}>none / none</p>
|
||||
<p className={`${currentTheme.text} font-mono mt-1`}>admin / Admin</p>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -2,6 +2,7 @@ import { useState, useEffect } from 'react';
|
||||
import { Users, Shield, Ban, Trash2, UserCheck, Server } from 'lucide-react';
|
||||
import axios from 'axios';
|
||||
import { notify } from './NotificationSystem';
|
||||
import { API_URL } from '../config';
|
||||
|
||||
const UserManagement = ({ token, currentUser }) => {
|
||||
const [users, setUsers] = useState([]);
|
||||
@@ -10,8 +11,6 @@ const UserManagement = ({ token, currentUser }) => {
|
||||
const [showRoleModal, setShowRoleModal] = useState(false);
|
||||
const [showAccessModal, setShowAccessModal] = useState(false);
|
||||
|
||||
const API_URL = import.meta.env.VITE_API_URL || 'http://localhost:8000';
|
||||
|
||||
// Загрузка пользователей
|
||||
const loadUsers = async () => {
|
||||
try {
|
||||
|
||||
@@ -1,21 +1,23 @@
|
||||
// Автоматически определяем API URL
|
||||
const getApiUrl = () => {
|
||||
// Если задана переменная окружения, используем её
|
||||
if (import.meta.env.VITE_API_URL) {
|
||||
return import.meta.env.VITE_API_URL;
|
||||
// Если переменная задана даже пустой строкой, используем её как явный override.
|
||||
// Пустая строка = same-origin (/api через nginx proxy).
|
||||
if (Object.prototype.hasOwnProperty.call(import.meta.env, 'VITE_API_URL')) {
|
||||
const value = import.meta.env.VITE_API_URL || '';
|
||||
return value.replace(/\/$/, '');
|
||||
}
|
||||
|
||||
// Иначе используем текущий хост с портом 8000
|
||||
// Иначе используем текущий хост с портом 4546
|
||||
const protocol = window.location.protocol;
|
||||
const hostname = window.location.hostname;
|
||||
|
||||
// Если localhost, используем localhost:8000
|
||||
// Если localhost, используем localhost:4546
|
||||
if (hostname === 'localhost' || hostname === '127.0.0.1') {
|
||||
return `${protocol}//localhost:8000`;
|
||||
return `${protocol}//localhost:4546`;
|
||||
}
|
||||
|
||||
// Для удаленного доступа используем IP:8000
|
||||
return `${protocol}//${hostname}:8000`;
|
||||
// Для удаленного доступа используем IP:4546
|
||||
return `${protocol}//${hostname}:4546`;
|
||||
};
|
||||
|
||||
export const API_URL = getApiUrl();
|
||||
|
||||
Reference in New Issue
Block a user