Сохранить 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.
Другие вопросы по тегам