This commit is contained in:
Eric85710 2026-07-04 16:15:30 +08:00
parent 2ffb00acd7
commit 1a047b79a1
2 changed files with 13 additions and 2 deletions

View file

@ -20,6 +20,13 @@ import retrofit2.http.Query
data class RefreshRequest( data class RefreshRequest(
val refresh_token: String val refresh_token: String
) )
@JsonClass(generateAdapter = true)
data class RefreshResponse(
val access_token: String,
val expires_in: Int,
val refresh_token: String,
val token: String? = null // 💡 設為可空並給預設值,防止後端沒吐時崩潰
)
interface TecnologiaApi { interface TecnologiaApi {
@ -34,8 +41,10 @@ interface TecnologiaApi {
@POST("api/auth/login") @POST("api/auth/login")
suspend fun login(@Body body: LoginRequest): Response<LoginResponse> suspend fun login(@Body body: LoginRequest): Response<LoginResponse>
@POST("api/auth/refresh") // 注意:如果是用 retrofit2.Response 包裹,請確保對應的 DTO 欄位都有容錯
suspend fun refreshToken(@Body body: RefreshRequest): Response<LoginResponse> @POST("api/auth/refresh") // 舉例你的路徑
suspend fun refreshToken(@Body request: RefreshRequest): Response<RefreshResponse>
// 取得個人資料:通常需要 Token // 取得個人資料:通常需要 Token
@GET("api/me") @GET("api/me")

View file

@ -1,6 +1,7 @@
package com.example.login_v3.data.repository.basic package com.example.login_v3.data.repository.basic
import android.content.Context import android.content.Context
import android.util.Log
import androidx.datastore.core.DataStore import androidx.datastore.core.DataStore
import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.core.booleanPreferencesKey import androidx.datastore.preferences.core.booleanPreferencesKey
@ -8,6 +9,7 @@ import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.longPreferencesKey import androidx.datastore.preferences.core.longPreferencesKey
import androidx.datastore.preferences.core.stringPreferencesKey import androidx.datastore.preferences.core.stringPreferencesKey
import androidx.datastore.preferences.core.stringSetPreferencesKey import androidx.datastore.preferences.core.stringSetPreferencesKey
import com.example.login_v3.data.api.RefreshRequest
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
import javax.inject.Inject import javax.inject.Inject