Перейти к основному содержимому

ReactNativeTokenProvider

@mineflow/auth-native


@mineflow/auth-native / ReactNativeTokenProvider

Class: ReactNativeTokenProvider

Defined in: react-native-token-provider.ts:93

Реализация порта TokenProvider из client-core для React Native поверх результата нативного OIDC-флоу. Даёт ядру SDK две вещи: актуальный access-token (с упреждающим и реактивным refresh) и канонические роли пользователя.

Адаптер не хранит токены и не инициирует логин — состоянием владеет приложение и прокидывает его через getState/refresh. За счёт этого провайдер тестируем, бандл-безопасен и не привязан к конкретной OIDC-библиотеке RN.

Example

import { authorize, refresh } from 'react-native-app-auth';
import { ReactNativeTokenProvider } from '@mineflow/auth-native';

let authState = await authorize(config);
const tokenProvider = new ReactNativeTokenProvider({
getState: () => authState,
refresh: async () => {
authState = await refresh(config, { refreshToken: authState.refreshToken! });
return authState;
},
});

// далее передаётся в MineflowProvider:
// <MineflowProvider tokenProvider={tokenProvider} roles={tokenProvider.getRoles()} />

Implements

  • TokenProvider

Constructors

Constructor

new ReactNativeTokenProvider(opts: ReactNativeTokenProviderOptions): ReactNativeTokenProvider;

Defined in: react-native-token-provider.ts:97

Parameters

ParameterTypeDescription
optsReactNativeTokenProviderOptionsОпции с getState/refresh (и опционально minValiditySeconds/now).

Returns

ReactNativeTokenProvider

Methods

getRoles()

getRoles(): readonly SystemRole[];

Defined in: react-native-token-provider.ts:140

Синхронно вернуть канонические роли пользователя. Декодирует realm-роли из access-token (realmRolesFromToken) и маппит их в SystemRole через mapKeycloakRoles (lowercase Keycloak-алиасы → 7 PascalCase системных ролей). Сетевого вызова и валидации подписи JWT нет — только разбор payload'а.

Returns

readonly SystemRole[]

Роли пользователя; пустой массив, если состояния нет или в токене ролей нет.

Implementation of

TokenProvider.getRoles

getToken()

getToken(opts?: GetTokenOptions): Promise<string | null>;

Defined in: react-native-token-provider.ts:117

Вернуть access-token для исходящего запроса, рефрешнув его при необходимости.

Refresh вызывается, если opts.forceRefresh (ядро выставляет реактивно при ответе 401, см. makeAuthenticatedFetch retry-once) ИЛИ токен истекает в ближайшие minValiditySeconds (упреждающе). В остальных случаях отдаётся текущий токен без сетевого вызова.

Деградация безопасна by design: если refresh() бросит, возвращается текущий (возможно протухший) токен — запрос уйдёт, бэк ответит 401, и UI инициирует повторный login. Ловить ошибки refresh снаружи не нужно.

Parameters

ParameterTypeDescription
opts?GetTokenOptionsОпции вызова; forceRefresh форсит refresh минуя порог валидности.

Returns

Promise<string | null>

Свежий или текущий access-token; null, если getState() вернул null (пользователь не залогинен).

Implementation of

TokenProvider.getToken