0

我已经用令牌实现Auth了功能。bearer这是我的refreshTokens实现

refreshTokens {
    val fullUrl = "$baseUrl/auth/token:refresh"
    val refreshToken = preference.get(PreferenceKeys.REFRESH_TOKEN.key)
    val authData = tokenClient.post<AuthResponse>(fullUrl) {
        body = AuthResponse(null, refreshToken)
        header(HttpHeaders.ContentType, ContentType.Application.Json)}
    BearerTokens(
        accessToken = authData.accessToken ?: "",
        refreshToken = authData.refreshToken ?: "")
}

如果只发出一个请求,它会按预期工作,但如果多个请求UnAuthorized同时出现 401 错误,则此回调会触发多次。是否有任何锁定机制,我应该实施以防止多个令牌刷新?谢谢

4

1 回答 1

0

由于版本的原因,2.0.0-beta-1他们为需要刷新令牌的请求创建了一个队列,将此链接视为一项新功能:

https://github.com/ktorio/ktor/releases/tag/2.0.0-beta-1

这作为问题编号: https ://youtrack.jetbrains.com/issue/KTOR-3325

于 2022-02-05T15:01:42.743 回答