> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.ruoomsoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 아키텍처

> 비즈니스 간 SSO 토큰 및 OAuth 파이프라인 아키텍처

## Core 연동

wheel은 `plugins.single_sign_on`을 설치합니다. 플러그인 메타데이터는 URL을 `/sso/`에 마운트하고 일회용 토큰 경로를 공개로 등록하며 `plugins.single_sign_on.middleware.sso.SSOMiddleware`를 Core 미들웨어 뒤에 추가합니다.

## 모델 및 흐름

`DisposableAuthenticationToken`은 인증된 사용자/프로필과 대상 비즈니스를 연결하는 토큰을 저장하며 `SSO_TOKEN_TTL_SECONDS`에 따라 만료됩니다.

1. `/sso/redirect/<business_id>/`에서 비즈니스 간 이동 대상을 만들거나 선택합니다.
2. 이동을 위한 일회용 토큰을 발급합니다.
3. `/sso/one-time/<token>/`에서 토큰, 만료, 사용자/프로필 및 대상 비즈니스를 검사합니다.
4. 토큰을 사용 처리하고 사용자를 대상 컨텍스트에 로그인시킵니다.
5. 역할별 리디렉션 설정에 따라 최종 위치로 이동합니다.

선택적 Google OAuth 파이프라인은 임시 사용자를 만들거나 조회하며, `SSOMiddleware`가 적격 임시 프로필을 올바른 Ruoom 비즈니스 흐름으로 이동시킵니다.

## 경로

* `/sso/redirect/<business_id>/`: 비즈니스 간 리디렉션 시작 (`single_sign_on:sso_redirect`).
* `/sso/one-time/<token>/`: UUID 인증 토큰 사용 (`single_sign_on:one_time_token_auth`).
