--- title: Повторно использовать сессию description: Передайте готовую модель сессии и пропустите login. sources: - eazy_sdk.auth.session_auth - eazy_sdk.auth.session_scheme api_fingerprint: "sha256:e022a2427979a153e99f78911b5decd15fc860ac67949ae2909d06325e31b3d4" --- Передайте `session=`, если приложение уже загрузило сохранённую модель. Runtime проверит срок, добавит credential в защищённый запрос и не вызовет login без необходимости. :::::{tab-set} :sync-group: transport ::::{tab-item} HTTP :sync: http Фабрика примера принимает ровно один исходный способ: `credentials=` для нового входа или `session=` для продолжения. Оба значения связываются с одной `USER_SESSION`. ```{literalinclude} ../../../../../../examples/docs/auth_session.py :language: python :start-after: "# region docs: auth-session-run" :end-before: "# endregion docs: auth-session-run" ``` Здесь `saved-access` ещё действителен, поэтому сеть видит только защищённый `GET /account`. :::: ::::{tab-item} Браузер :sync: browser `BrowserSession` разделяет состояние входа между вкладками одного контекста и обновляет его через один `BrowserLogin`. ```{literalinclude} ../../../../../../examples/mail/site/app.py :language: html :start-after: "" :end-before: "" ``` ```{literalinclude} ../../../../../../examples/mail/browser/session.py :language: python :start-after: "# region docs: browser-session-flow" :end-before: "# endregion docs: browser-session-flow" ``` :::: ::::: | Начальное состояние | Действие runtime | Первый HTTP-вызов | |---|---|---| | Валидная `session` | Использовать Bearer-поле | Защищённая операция | | Просроченная `session` | Вызвать `refresh(...)` | Refresh-операция | | Только `credentials` | Вызвать `acquire(...)` | Login-операция | | Ни сессии, ни credentials | Остановить планирование | HTTP-вызова нет | Для сохранения между запусками передайте совместимый `SessionStore` и стабильный `identity` в настройку схемы. Новая revision записывается только после успешного login или refresh. :::{dropdown} Запускаемый файл целиком ```{literalinclude} ../../../../../../examples/docs/auth_session.py :language: python ``` ::: ```text account: user-42 ada@mail.example requests: 1 ``` ## Дальше - {doc}`Обновить сессию ` - {doc}`Собрать HTTP- и браузерный SDK ` - {doc}`Хранилище SQLModel `