From 146a732982f096bfdb3e3ed56300233736f90c21 Mon Sep 17 00:00:00 2001 From: Ognjen Cirkovic Date: Sat, 5 Nov 2022 00:08:35 +0100 Subject: Dodato refreshovanje jwt-a na clientskom delu aplikacije. --- .../brzodolokacije/Fragments/FragmentLogin.kt | 1 - .../example/brzodolokacije/Interfaces/IAuthApi.kt | 3 +- .../com/example/brzodolokacije/MainActivity.kt | 42 ++++++++++++++++++++-- 3 files changed, 42 insertions(+), 4 deletions(-) diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt index 6e6e368..b68a04f 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt @@ -94,7 +94,6 @@ class FragmentLogin : Fragment() { Toast.makeText( activity, token, Toast.LENGTH_LONG ).show(); - //TODO(navigate to main page) SharedPreferencesHelper.addValue("jwt",token,activity!!) val intent= Intent(activity!!, NavigationActivity::class.java) startActivity(intent) diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt index 22935a5..57e7e82 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt @@ -14,7 +14,8 @@ interface IAuthApi { fun login(@Body obj:Login): Call @POST("/api/auth/register") fun register(@Body obj:Register):Call - + @POST("/api/auth/refreshJwt") + fun refreshJwt(@Header("Authorization") authHeader:String): Call //@POST("putanja") //fun add(@Body obj:Post,@Header("Authorization") authHeader:String):Call } \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt index 1208564..e55da11 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt @@ -3,10 +3,15 @@ package com.example.brzodolokacije import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import android.util.Log +import android.widget.Toast import com.auth0.android.jwt.JWT import com.example.brzodolokacije.Activities.ActivityLoginRegister import com.example.brzodolokacije.Activities.NavigationActivity +import com.example.brzodolokacije.Services.RetrofitHelper import com.example.brzodolokacije.Services.SharedPreferencesHelper +import retrofit2.Call +import retrofit2.Response class MainActivity : AppCompatActivity() { @@ -17,8 +22,9 @@ class MainActivity : AppCompatActivity() { setContentView(R.layout.activity_main) val intent:Intent - if(checkLoggedIn()) - intent= Intent(this, NavigationActivity::class.java) + if(checkLoggedIn()) { + intent = Intent(this, NavigationActivity::class.java) + } else intent= Intent(this, ActivityLoginRegister::class.java) @@ -33,10 +39,42 @@ class MainActivity : AppCompatActivity() { var jwt:JWT=JWT(jwtString) if(jwt.isExpired(30)) return false + refreshJwt(jwtString) return true + } + + fun refreshJwt(token:String){ + Log.d("Main","RIPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP") + if(token==null) + return + var refreshJwt= RetrofitHelper.getInstance().refreshJwt("Bearer "+token) + refreshJwt.enqueue(object : retrofit2.Callback { + override fun onResponse(call: Call, response: Response) { + if(response.isSuccessful()){ + val newToken=response.body().toString() + Toast.makeText( + applicationContext, token, Toast.LENGTH_LONG + ).show(); + SharedPreferencesHelper.addValue("jwt",newToken,this@MainActivity) + }else{ + if(response.errorBody()!=null) + Toast.makeText(applicationContext, response.errorBody()!!.string(), Toast.LENGTH_LONG).show(); + } + + + } + + override fun onFailure(call: Call, t: Throwable) { + Toast.makeText( + applicationContext, t.toString(), Toast.LENGTH_LONG + ).show(); + } + }) + + } } \ No newline at end of file -- cgit v1.2.3