Сохранить access_token через общие настройки android
Мое приложение получает некоторый ответ от сервера, и в этом ответе я также получаю токен доступа, который я должен использовать в своих дальнейших операциях, в целом мне удалось получить этот токен из моего ответа, и теперь я могу видеть его в textView. Но в любом случае мне нужно создать что-то вроде обновления следующего токена, потому что я думаю, что мои пользователи не будут слишком рады входить в мое приложение много раз, после истечения срока действия текущего токена. Итак, сейчас у меня есть очень серьезный вопрос, например, как вставить следующий токен, который я могу получить из моего ответа на мой запрос:
@Headers({"Content-type: application/json",
"Authorization: Bearer my token"})
@GET("/v1/message/list")
Call<ListOfMess> getInMess(@Query("type") int type, @Query("offset") int offset);
сейчас я должен вставлять последний токен каждые полчаса, потому что я не смогу получить никаких данных. Я попытался вставить следующий токен в мою модификацию:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://server/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build();
Но это не сработало должным образом. Поэтому через некоторое время я понял, что могу хранить следующий токен с помощью общих преференций и вставлять его везде, но я не знаю, как его создать. Я надеюсь, что вы поможете mw со следующей проблемой. А также, если вы знаете способ обновления моего токена через некоторое время по какому-либо запросу, я буду рад видеть ваш ответ)) Извините за мои плохие языковые навыки.
1 ответ
//Save token here
String token = "Some token From Server";
SharedPreferences preferences = getActivity().getSharedPreferences("MY_APP",Context.MODE_PRIVATE);
preferences.edit().putString("TOKEN",token).apply();
//Retrieve token wherever necessary
SharedPreferences preferences = getActivity().getSharedPreferences("MY_APP",Context.MODE_PRIVATE);
String retrivedToken = preferences.getString("TOKEN",null);//second parameter default value.