fix
This commit is contained in:
parent
a1d4ce0cdd
commit
d17e04bd80
@ -163,10 +163,10 @@ fetch(`${Config.API_URL}/api`, {
|
||||
|
||||
# Авторизация фронтенда
|
||||
|
||||
По умолчанию фронтенд использует существующую локальную форму входа. Keycloak включается только при точном значении `true` у production-флага:
|
||||
Фронтенд использует ту же семантику `DEBUG`, что и бэкенд. В production-сборке (`REACT_APP_DEBUG=false`) включается Keycloak:
|
||||
|
||||
```dotenv
|
||||
REACT_APP_IS_PRODUCTION=true
|
||||
REACT_APP_DEBUG=false
|
||||
REACT_APP_KEYCLOAK_URL=https://keycloak.example.ru
|
||||
REACT_APP_REALM=example-realm
|
||||
REACT_APP_CLIENT_ID=example-client
|
||||
@ -174,4 +174,4 @@ REACT_APP_NAMESPACE=example-namespace
|
||||
REACT_APP_APP_NAME=example-app
|
||||
```
|
||||
|
||||
При `REACT_APP_IS_PRODUCTION=false` или если переменная отсутствует, Keycloak не инициализируется и продолжает работать локальная форма входа. Production-авторизация подключается через `raisa-fastapi-protected-web`.
|
||||
При `REACT_APP_DEBUG=true` Keycloak не инициализируется и продолжает работать локальная форма входа. Production-авторизация подключается через `raisa-fastapi-protected-web`.
|
||||
|
||||
@ -170,7 +170,7 @@ const ProductionAuthProvider = ({ children }) => {
|
||||
};
|
||||
|
||||
export const AuthProvider = ({ children }) => {
|
||||
if (Config.IS_PRODUCTION) {
|
||||
if (!Config.DEBUG) {
|
||||
return <ProductionAuthProvider>{children}</ProductionAuthProvider>;
|
||||
}
|
||||
|
||||
|
||||
@ -57,9 +57,9 @@ export function HeaderMenu() {
|
||||
<div className='role'>{user?.role}</div>
|
||||
</UserNameAndRole>
|
||||
|
||||
{/* на стенде прода не показываем кнопку выхода */}
|
||||
{!Config.IS_PRODUCTION && <DownButton onClick={toggleMenu} isOpen={isMenuOpen} />}
|
||||
{!Config.IS_PRODUCTION && isMenuOpen && (
|
||||
{/* В debug-режиме доступен выход из локальной учётной записи. */}
|
||||
{Config.DEBUG && <DownButton onClick={toggleMenu} isOpen={isMenuOpen} />}
|
||||
{Config.DEBUG && isMenuOpen && (
|
||||
<DropdownMenu>
|
||||
<LogoutButton onClick={handleLogout}>Выйти</LogoutButton>
|
||||
</DropdownMenu>
|
||||
|
||||
@ -13,7 +13,7 @@ if (environment.APP_ENV === 'test') {
|
||||
|
||||
export class Config {
|
||||
static API_URL: string = env_var ?? environment.REACT_APP_API_URL ?? environment.REACT_APP_ROOT_PATH ?? '';
|
||||
static IS_PRODUCTION: boolean = isTrue(environment.REACT_APP_IS_PRODUCTION);
|
||||
static DEBUG: boolean = isTrue(environment.REACT_APP_DEBUG);
|
||||
static KEYCLOAK_URL: string = environment.REACT_APP_KEYCLOAK_URL ?? '';
|
||||
static REALM: string = environment.REACT_APP_REALM ?? '';
|
||||
static CLIENT_ID: string = environment.REACT_APP_CLIENT_ID ?? '';
|
||||
|
||||
2
web/src/env.d.ts
vendored
2
web/src/env.d.ts
vendored
@ -2,7 +2,7 @@
|
||||
|
||||
declare namespace NodeJS {
|
||||
interface ProcessEnv {
|
||||
readonly REACT_APP_IS_PRODUCTION?: string;
|
||||
readonly REACT_APP_DEBUG?: string;
|
||||
readonly REACT_APP_KEYCLOAK_URL?: string;
|
||||
readonly REACT_APP_REALM?: string;
|
||||
readonly REACT_APP_CLIENT_ID?: string;
|
||||
|
||||
@ -37,7 +37,7 @@ const application = (
|
||||
</ThemeProvider>
|
||||
);
|
||||
|
||||
const root = Config.IS_PRODUCTION ? (
|
||||
const root = !Config.DEBUG ? (
|
||||
<RaisaAuthContext
|
||||
authClient={createAuthContext(Config.KEYCLOAK_URL, Config.REALM, Config.CLIENT_ID)}
|
||||
app={{ appName: Config.APP_NAME, namespace: Config.NAMESPACE }}>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user