CondoWebAppRequestAuth

Данный метод запускает и проводит OIDC-авторизацию для мини-приложения в фоновом режиме. Родительское приложение выполняет цепочку редиректов авторизации в скрытом окне и возвращает результат последнего запроса — статус, тело и URL конечного endpoint'а.

Платформы

B2B WebB2C WebB2C Cordova

Параметры метода

Имя параметраТип параметраОбязательныйОписание параметра
urlstringдаСтартовый URL авторизации на вашем бэкенде, например https://my-app.com/api/auth/condo

Возвращаемое значение

В случае успешного выполнения вы получите JSON-объект следующего типа:
typescript
type RequestAuthData = { response: { status: number // HTTP-статус последнего ответа body: string // Тело последнего ответа url: string // URL последнего endpoint'а в цепочке (например, callback) } }

Пример использования

typescript
// pages/index.tsx import React, { useEffect, useState } from 'react' import bridge from '@open-condo/bridge' const AUTH_START_URL = 'https://my-app.com/api/auth/condo' const CALLBACK_URL = 'https://my-app.com/api/auth/condo/callback' export default function MiniappPage (): React.ReactNode { const [condoUserId, setCondoUserId] = useState<string | null>(null) // Проверка текущей сессии мини-приложения const { user, refetchUser, authLoading } = useAuth() // Получаем condoUserId из параметров запуска useEffect(() => { bridge.send('CondoWebAppGetLaunchParams').then(({ condoUserId }) => { setCondoUserId(condoUserId) }).catch(console.error) }, []) // Если сессия отсутствует или принадлежит другому пользователю — авторизуемся useEffect(() => { if (authLoading || !condoUserId) return if (!user || user.id !== condoUserId) { bridge.send('CondoWebAppRequestAuth', { url: AUTH_START_URL }).then(({ response }) => { if (response.status === 200 && response.url === CALLBACK_URL) { // Авторизация прошла успешно — обновляем данные пользователя refetchUser() } }).catch(console.error) } }, [authLoading, user, condoUserId, refetchUser]) return ( // ... ) }

Безопасность токенов при авторизации