Actualizar tokens JWT en Android con OkHttp Interceptor | de Rahul Ray | febrero 2023

En este artículo, analizamos el proceso de actualización de JSON Web Tokens (JWT) en una aplicación de Android actualizada. Los JWT se usan comúnmente para la autenticación en aplicaciones web y móviles. Permiten que la información se transmita de forma segura entre las partes, pero es importante actualizarlos regularmente para mantener la seguridad de la aplicación. En este artículo, le mostraré cómo implementar un proceso de actualización de JWT en una aplicación de Android usando Retrofit y OkHttp. Empecemos. Primero necesitamos configurar el proyecto de Android instalando las dependencias requeridas. Estos incluyen actualización, OkHttp y una biblioteca de tokens web JSON. También configuraremos el requisito de red en el proyecto de Android con Retrofit. Este es un ejemplo de instalación de la biblioteca Retrofit en su archivo build.gradle: Implementación ‘com.squareup.retrofit2:retrofit:2.9.0’ Implementación ‘com.squareup .retrofit2:converter-gson:2.9.0’implementación ‘com. squareup.okhttp3:logging-interceptor:4.9.0’Y aquí hay un ejemplo de configuración de solicitud de actualización: val retrofit = Retrofit.Builder().baseUrl( «https://api.example.com/ «).addConverterFactory(GsonConverterFactory .create()).build() A continuación, crearemos un interceptor OkHttp para inyectar tokens en los encabezados de nuestras solicitudes de API. class AuthInterceptor: Interceptor {override fun intercept(chain: Chain): Response {val token = getFromStorage( )val request = chain.request()if (token.isNullOrEmpty()) {val newRequest = request.newBuilder().header(«Autorización», «Bearer $token»).build()return chain.proceed(newRequest) }return chain.proceed(request)}}Ahora creamos un cliente OkHttp al que anunciamos este interceptor y luego se convierte en Se agregó nuestra modernización builder.private fun getRetrofit(): Retrofit {val authInterceptor = AuthInterceptor() val okHttpClient = OkHttpClient.Builder().addInterceptor(authInterceptor).build()return Retrofit.Builder().baseUrl(BASE_URL).addConverterFactory( GsonConverterFactory.create()).client(okHttpClient).build()}A medida que agregamos tokens a nuestras solicitudes individuales, puede suceder que el token falte o no sea válido. La solicitud genera un error. Código de estado 401. En este caso, debemos actualizar el token, guardarlo en el almacenamiento local y volver a realizar la solicitud original. class AuthInterceptor: Interceptor {private fun refreshToken():Response {// haga una llamada a la API para obtener un nuevo tokenreturn if (response.isSuccessful) {val token = response.body()?.tokensaveTokenToLocalStorage(token)val newRequest = request.newBuilder ().header(«Autorización», «Bearer $token»).build()chain.proceed(newRequest)} else { chain.proceed(request)}}override fun intercept(chain: Chain): Respuesta {val token = getFromStorage()val request = chain.request()if (token.isNullOrEmpty()) {val newRequest = request.newBuilder() .header(«Autorización», «Portador $token»).build()val respuesta = cadena. proceder(nuevaSolicitud)regresar si (respuesta.código() == 401) {refreshToken()} else {respuesta}} else {refreshToken()}return chain.proceed(request)}}actualizarToken() La función realizará una nueva llamada a la API para obtener un nuevo token del servidor y luego se actualizará en nuestro almacenamiento local, después de lo cual podremos realizar la solicitud original nuevamente con el token actualizado. La actualización de tokens JWT en Android es fundamental para garantizar la seguridad de sus llamadas API. Al usar OkHttp Interceptor, puede automatizar el proceso y hacerlo sin esfuerzo. Espero que este ejemplo lo ayude a comprender la implementación de la actualización del token JWT en Android y le brinde las habilidades necesarias para integrarlo en sus propios proyectos. Gorjeo!Diviértete programando!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.