android | каким способом хранить access_token в работающем приложении?

Рейтинг: 1Ответов: 1Опубликовано: 11.01.2023

Я не знаю как правильно сформулировать свой вопрос, поэтому решил задать его тут, а не искать ответ в google (но я пытался)

Как и в большинстве проектов, в моём потенциальном приложении, первой задачей будет авторизация пользователя. После авторизации пользователь получает свой token, для доступа к методам API какого-нибудь сервера. Этот token понятное дело нужно сохранить в базе данных (ну или в другом месте), это я понимаю.

Но вот как дальше пользоваться токеном в приложении мне не понятно. В обычных консольных приложениях, я создавал класс, в котором был атрибут token, который сам автоматически добавлялся к http запросу во всех методах к API. Получается в главной main функции объявлялся экземпляр такого класса (допустим var api = Api(token)), и дальше через переменную api осуществлялись http запросы (допустим api.send_message(text)).

В android приложении, как я понимаю происходит частая смена экранов (Activity), следовательно, я не могу создать глобальную переменную. У меня есть предположение, что нужно при каждом http запросе считывать токен из базы данных, но мне кажется это плохая идея. Другое предположение, передавать токен из одного Activity в другое.

Извините, если вопрос глупый и непонятный, но я не понимаю как мне это сделать. Если покороче, то я хочу создать переменную, доступ к которой у меня будет из любого места в приложении. Скорее всего это невозможно и то что мне нужно, делается гораздо проще.

Если вы меня поняли, можете объяснить, как это сделать? (ну или скинуть ссылку на какую-нибудь статейку)

Если что, то я пишу на kotlin, но и java знаю, поэтому мне в принципе без разницы

Ответы

▲ 0Принят

" я не могу создать глобальную переменную" - почему нет?

"при каждом http запросе считывать токен из базы данных" - тоже не плохо. можно еще использовать SharedPref, но тут сразу вопрос возникает "сколько этот токен живет?" если бесконечно - то лучше так неделать, т.к. и из БД и из SharedPref злоумышленники легко получат этот токен.

" передавать токен из одного Activity в другое" - вот это сразу нет. отвратное решение. если хотите узнать что такое мучения - обязательно попробуйте, но только в рамках самоиздевательства в учебной форме))

нормальным будет подход, если вы создадите синглтон и там будете хранить этот токен.