Skip to content

Добавлено локальное хранение токена авторизации#149

Open
Gaileks wants to merge 1 commit into
epic/ANDR-81from
feature/ANDR-87-local-storage
Open

Добавлено локальное хранение токена авторизации#149
Gaileks wants to merge 1 commit into
epic/ANDR-81from
feature/ANDR-87-local-storage

Conversation

@Gaileks
Copy link
Copy Markdown
Collaborator

@Gaileks Gaileks commented May 28, 2026

🧩 Что сделано:
Реализовано локальное хранение accessToken через DataStore:

• Добавлены core-модули datastore-api и datastore-impl
• Добавлен TokenDataStore для работы с accessToken
• Реализовано сохранение accessToken
• Реализовано чтение сохранённого accessToken
• Реализована очистка accessToken при logout
• Добавлен corruptionHandler для DataStore
• После успешной авторизации accessToken сохраняется локально

UseCase:
• Добавлен CheckAuthStateUseCase для проверки авторизованного состояния
• Добавлен LogoutUseCase для очистки токена при logout

DI:
• Добавлена регистрация Preferences DataStore
• Добавлена регистрация TokenDataStore
• datastoreModule подключён в Application
• TokenDataStore подключён в LoginRepositoryImpl

🗂 Затронутые модули:
• core:datastore-api
• core:datastore-impl
• feature:authentication:impl
• app

- Добавлены core-модули datastore-api и datastore-impl
- Добавлен TokenDataStore для работы с accessToken
- Реализовано сохранение accessToken через Preferences DataStore
- Добавлено чтение сохранённого accessToken
- Добавлена очистка accessToken при logout
- Добавлен corruptionHandler для DataStore
- Добавлена DI-регистрация DataStore и TokenDataStore
- datastoreModule подключён в Application
- TokenDataStore подключён в LoginRepositoryImpl
- После успешной авторизации accessToken сохраняется локально
- Добавлен CheckAuthStateUseCase для проверки авторизованного состояния
- Добавлен LogoutUseCase для очистки токена
* - очищает токены авторизации
*/
class TokenDataStoreImpl(
private val dataStore: DataStore<Preferences>,
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

У нас в приложении в манифесте включен бэкап, куда бэкапятся также shared preferences. Это риск. И в целом я думаю было бы безопаснее юзать для хранения такого токена что-то другое, вот из доков:

To back up user credentials and authentication tokens, don't store them in shared preferences or a file. Instead use Block Store APIs to store and manage credentials. This helps ensure that they are securely stored and can be backed up and restored alongside other app data.

https://developer.android.com/identity/data/autobackup

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Немного неправильно выражаюсь - у тебя же не shared preferences, а datastore. Datastore держит данные в файлике, по дефолту он без шифрования

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants