HawlPendragon
@HawlPendragon
Junior Android Developer

Как правильно работать с refresh token в android разработке?

Мое приложение может выполнять аутентификацию, авторизацию и получать информацию профиля.Все делается через токен.Мне нужно добавить ситуацию, когда срок действия токена истек. (Работа с RefreshToken). Я не знаю, как это сделать правильно. Я не знаю, где эту проверку лучше провести.

Выкладываю часть кода.Вряд ли он чем то поможет.Но пусть лежит

Это MainActivity при запуске приложения идет проверка на Null токена

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        SharedPreferences sharedPref = getApplicationContext()
                .getSharedPreferences("userInfo", AppCompatActivity.MODE_PRIVATE);
        String token = sharedPref.getString("access_token",null);

        if (token != null) {
        Intent intent = new Intent(MainActivity.this, Profiile.class);
            startActivity(intent);
            finish();
        }
    }


Это Singleton для Retrofit



public class NetworkService {
    private static NetworkService mInstance;
    private static final String BASE_URL = "https://minesrv.ey.r.appspot.com";
    private Retrofit mRetrofit;

    private NetworkService () {

        HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
        logging.setLevel(HttpLoggingInterceptor.Level.BODY);
        SharedPreferences preferences = App.Companion.getInstance().getSharedPreferences("userInfo", AppCompatActivity.MODE_PRIVATE);

        OkHttpClient client = new OkHttpClient.Builder()
                .addInterceptor(logging)
                .addInterceptor(new AccessTokenInterceptor(preferences))
                .build();

        mRetrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .client(client)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }


Я не жду решений каких то.Можете просто сказать как производительно это сделать.Как бы сделал Senior?
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 1
@YuryBorodkin
Android dev
Как сеньор - долго обьяснять, секурность, авбтрактность-расширяемость, бла-бла, тебе не надо пока.
В Ретрофите есть механизм интрецепетров , можно сделать свой, где ты будешь на ошибку экспирации токена запрашивать новый токен и повторять запрос.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы