Segarkan Token JWT di Android dengan OkHttp Interceptor
Perkenalan
Pada artikel ini, kita akan membahas proses menyegarkan Token Web JSON (JWT) di aplikasi Android menggunakan Retrofit. JWT banyak digunakan untuk autentikasi di aplikasi web dan seluler. Mereka memungkinkan transmisi informasi yang aman antar pihak, tetapi penting untuk menyegarkannya secara teratur untuk menjaga keamanan aplikasi.
Dalam artikel ini, saya akan menunjukkan kepada Anda cara mengimplementasikan proses penyegaran JWT di aplikasi Android menggunakan Retrofit dan OkHttp. Mari kita mulai.
Lihat tutorial langsung lengkap di sini
Menyiapkan proyek Android
Pertama, kita perlu menyiapkan proyek Android dengan memasang dependensi yang diperlukan. Ini termasuk Retrofit, OkHttp, dan pustaka Token Web JSON. Kami juga akan mengonfigurasi permintaan jaringan di proyek Android menggunakan Retrofit.
Berikut adalah contoh cara menginstal pustaka Retrofit di file build.gradle Anda:
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.0'
val retrofit = Retrofit.Builder()
.baseUrl("https://api.example.com/")
.addConverterFactory(GsonConverterFactory.create())
.build()
Selanjutnya, kami akan membuat Interceptor OkHttp untuk menambahkan token di header permintaan API kami.
class AuthInterceptor: Interceptor {
override fun intercept(chain: Chain): Response {
val token = getFromStorage()
val request = chain.request()
if (token.isNullOrEmpty()) {
val newRequest = request
.newBuilder()
.header("Authorization", "Bearer $token")
.build()
return chain.proceed(newRequest)
}
return chain.proceed(request)
}
}
Sekarang, kami akan membuat klien OkHttp yang akan kami tambahkan pencegat ini dan kemudian akan ditambahkan ke pembuat Retrofit kami.
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()
}
Karena kami telah menambahkan token ke setiap permintaan kami, mungkin ada kasus ketika token tidak ada atau tidak valid dan permintaan melontarkan kesalahan dengan kode status 401. Dalam hal ini kami perlu menyegarkan token, menyimpannya ke penyimpanan lokal dan membuat permintaan asli lagi.
class AuthInterceptor: Interceptor {
private fun refreshToken():Response {
// make an API call to get new token
return if (response.isSuccessful) {
val token = response.body()?.token
saveTokenToLocalStorage(token)
val newRequest = request
.newBuilder()
.header("Authorization", "Bearer $token")
.build()
chain.proceed(newRequest)
} else {
chain.proceed(request)
}
}
override fun intercept(chain: Chain): Response {
val token = getFromStorage()
val request = chain.request()
if (token.isNullOrEmpty()) {
val newRequest = request
.newBuilder()
.header("Authorization", "Bearer $token")
.build()
val response = chain.proceed(newRequest)
return if (response.code() == 401) {
refreshToken()
} else {
response
}
} else {
refreshToken()
}
return chain.proceed(request)
}
}
Kesimpulan
Menyegarkan token JWT di Android sangat penting untuk memastikan keamanan panggilan API Anda. Dengan menggunakan OkHttp Interceptor, Anda dapat mengotomatiskan proses dan membuatnya mudah. Saya harap contoh ini dapat membantu Anda memahami implementasi penyegaran token JWT di Android dan membekali Anda dengan keterampilan yang diperlukan untuk mengintegrasikannya ke dalam proyek Anda sendiri.
Mari terhubung di LinkedIn dan Twitter !
Selamat Coding!

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































