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
|
```dotenv
|
||||||
REACT_APP_IS_PRODUCTION=true
|
REACT_APP_DEBUG=false
|
||||||
REACT_APP_KEYCLOAK_URL=https://keycloak.example.ru
|
REACT_APP_KEYCLOAK_URL=https://keycloak.example.ru
|
||||||
REACT_APP_REALM=example-realm
|
REACT_APP_REALM=example-realm
|
||||||
REACT_APP_CLIENT_ID=example-client
|
REACT_APP_CLIENT_ID=example-client
|
||||||
@ -174,4 +174,4 @@ REACT_APP_NAMESPACE=example-namespace
|
|||||||
REACT_APP_APP_NAME=example-app
|
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 }) => {
|
export const AuthProvider = ({ children }) => {
|
||||||
if (Config.IS_PRODUCTION) {
|
if (!Config.DEBUG) {
|
||||||
return <ProductionAuthProvider>{children}</ProductionAuthProvider>;
|
return <ProductionAuthProvider>{children}</ProductionAuthProvider>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -57,9 +57,9 @@ export function HeaderMenu() {
|
|||||||
<div className='role'>{user?.role}</div>
|
<div className='role'>{user?.role}</div>
|
||||||
</UserNameAndRole>
|
</UserNameAndRole>
|
||||||
|
|
||||||
{/* на стенде прода не показываем кнопку выхода */}
|
{/* В debug-режиме доступен выход из локальной учётной записи. */}
|
||||||
{!Config.IS_PRODUCTION && <DownButton onClick={toggleMenu} isOpen={isMenuOpen} />}
|
{Config.DEBUG && <DownButton onClick={toggleMenu} isOpen={isMenuOpen} />}
|
||||||
{!Config.IS_PRODUCTION && isMenuOpen && (
|
{Config.DEBUG && isMenuOpen && (
|
||||||
<DropdownMenu>
|
<DropdownMenu>
|
||||||
<LogoutButton onClick={handleLogout}>Выйти</LogoutButton>
|
<LogoutButton onClick={handleLogout}>Выйти</LogoutButton>
|
||||||
</DropdownMenu>
|
</DropdownMenu>
|
||||||
|
|||||||
@ -13,7 +13,7 @@ if (environment.APP_ENV === 'test') {
|
|||||||
|
|
||||||
export class Config {
|
export class Config {
|
||||||
static API_URL: string = env_var ?? environment.REACT_APP_API_URL ?? environment.REACT_APP_ROOT_PATH ?? '';
|
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 KEYCLOAK_URL: string = environment.REACT_APP_KEYCLOAK_URL ?? '';
|
||||||
static REALM: string = environment.REACT_APP_REALM ?? '';
|
static REALM: string = environment.REACT_APP_REALM ?? '';
|
||||||
static CLIENT_ID: string = environment.REACT_APP_CLIENT_ID ?? '';
|
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 {
|
declare namespace NodeJS {
|
||||||
interface ProcessEnv {
|
interface ProcessEnv {
|
||||||
readonly REACT_APP_IS_PRODUCTION?: string;
|
readonly REACT_APP_DEBUG?: string;
|
||||||
readonly REACT_APP_KEYCLOAK_URL?: string;
|
readonly REACT_APP_KEYCLOAK_URL?: string;
|
||||||
readonly REACT_APP_REALM?: string;
|
readonly REACT_APP_REALM?: string;
|
||||||
readonly REACT_APP_CLIENT_ID?: string;
|
readonly REACT_APP_CLIENT_ID?: string;
|
||||||
|
|||||||
@ -37,7 +37,7 @@ const application = (
|
|||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
|
|
||||||
const root = Config.IS_PRODUCTION ? (
|
const root = !Config.DEBUG ? (
|
||||||
<RaisaAuthContext
|
<RaisaAuthContext
|
||||||
authClient={createAuthContext(Config.KEYCLOAK_URL, Config.REALM, Config.CLIENT_ID)}
|
authClient={createAuthContext(Config.KEYCLOAK_URL, Config.REALM, Config.CLIENT_ID)}
|
||||||
app={{ appName: Config.APP_NAME, namespace: Config.NAMESPACE }}>
|
app={{ appName: Config.APP_NAME, namespace: Config.NAMESPACE }}>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user