chore: drop old client support (#14369)

This commit is contained in:
DarkSky
2026-02-05 02:49:33 +08:00
committed by GitHub
parent de29e8300a
commit 403f16b404
103 changed files with 3293 additions and 997 deletions

View File

@@ -28,7 +28,9 @@ object AuthInitializer {
.get(server.host + CookieStore.AFFINE_SESSION)
val userIdCookieStr = AFFiNEApp.context().dataStore
.get(server.host + CookieStore.AFFINE_USER_ID)
if (sessionCookieStr.isEmpty() || userIdCookieStr.isEmpty()) {
val csrfCookieStr = AFFiNEApp.context().dataStore
.get(server.host + CookieStore.AFFINE_CSRF_TOKEN)
if (sessionCookieStr.isEmpty() || userIdCookieStr.isEmpty() || csrfCookieStr.isEmpty()) {
Timber.i("[init] user has not signed in yet.")
return@launch
}
@@ -38,6 +40,8 @@ object AuthInitializer {
?: error("Parse session cookie fail:[ cookie = $sessionCookieStr ]"),
Cookie.parse(server, userIdCookieStr)
?: error("Parse user id cookie fail:[ cookie = $userIdCookieStr ]"),
Cookie.parse(server, csrfCookieStr)
?: error("Parse csrf token cookie fail:[ cookie = $csrfCookieStr ]"),
)
CookieStore.saveCookies(server.host, cookies)
FileTree.get()?.checkAndUploadOldLogs(server)
@@ -49,4 +53,4 @@ object AuthInitializer {
})
}
}
}

View File

@@ -43,9 +43,15 @@ class AuthPlugin : Plugin() {
launch(Dispatchers.IO) {
try {
val endpoint = call.getStringEnsure("endpoint")
val csrfToken = CookieStore.getCookie(endpoint.toHttpUrl(), CookieStore.AFFINE_CSRF_TOKEN)
val request = Request.Builder()
.url("$endpoint/api/auth/sign-out")
.get()
.post("".toRequestBody("application/json".toMediaTypeOrNull()))
.apply {
if (csrfToken != null) {
addHeader("x-affine-csrf-token", csrfToken)
}
}
.build()
OkHttp.client.newCall(request).executeAsync().use { response ->
if (response.code >= 400) {

View File

@@ -54,6 +54,7 @@ object CookieStore {
const val AFFINE_SESSION = "affine_session"
const val AFFINE_USER_ID = "affine_user_id"
const val AFFINE_CSRF_TOKEN = "affine_csrf_token"
private val _cookies = ConcurrentHashMap<String, List<Cookie>>()
@@ -68,6 +69,9 @@ object CookieStore {
AFFiNEApp.context().dataStore.set(host + AFFINE_USER_ID, it.toString())
Firebase.crashlytics.setUserId(it.value)
}
cookies.find { it.name == AFFINE_CSRF_TOKEN }?.let {
AFFiNEApp.context().dataStore.set(host + AFFINE_CSRF_TOKEN, it.toString())
}
}
}
@@ -77,4 +81,4 @@ object CookieStore {
.let { _cookies[it] }
?.find { cookie -> cookie.name == name }
?.value
}
}