@startuml fig_20_oauth_sequence
scale 3
title OAuth 2.0: авторизация Яндекс
skinparam defaultFontName "DejaVu Sans"

actor User
participant "Wallenc UI" as UI
participant "OAuth клиент" as OAuth
participant "Яндекс OAuth" as Yandex
database "Room" as DB

User -> UI : Подключить облако
UI -> OAuth : Запрос авторизации
OAuth -> Yandex : Authorization request
Yandex -> User : Вход и согласие
User -> Yandex : Подтверждение
Yandex -> OAuth : Authorization code
OAuth -> Yandex : Обмен code на token
Yandex --> OAuth : access_token
OAuth -> DB : Сохранить DbYandexAccount
OAuth --> UI : Успех
UI --> User : Удалённые vault доступны

@enduml
