dm-189
This commit is contained in:
parent
2ffb00acd7
commit
1a047b79a1
2 changed files with 13 additions and 2 deletions
|
|
@ -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")
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue