diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/WebSocketService.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/WebSocketService.kt index 6a0ad7b..9dfdda2 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/WebSocketService.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/WebSocketService.kt @@ -60,8 +60,10 @@ internal class WebSocketService( } override fun onOpen(conn: WebSocket, handshake: ClientHandshake) { - val token = ShamrockConfig.getActiveWebSocketConfig()?.token ?: ShamrockConfig.getToken() - if (token.isNotBlank()) { + val token = ShamrockConfig.getActiveWebSocketConfig()?.tokens + ?: ShamrockConfig.getActiveWebSocketConfig()?.token?.split(",", "|", ",") + ?: listOf(ShamrockConfig.getToken()) + if (token.isNotEmpty()) { var accessToken = handshake.getFieldValue("access_token") .ifNullOrEmpty(handshake.getFieldValue("ticket")) .ifNullOrEmpty(handshake.getFieldValue("Authorization")) @@ -69,8 +71,7 @@ internal class WebSocketService( if (accessToken.startsWith("Bearer ", ignoreCase = true)) { accessToken = accessToken.substring(7) } - val tokenList = token.split(",", "|", ",") - if (!tokenList.contains(accessToken)) { + if (!token.contains(accessToken)) { conn.close() LogCenter.log({ "WSServer连接错误(${conn.remoteSocketAddress.address.hostAddress}:${conn.remoteSocketAddress.port}) 没有提供正确的token, $accessToken。" }, Level.ERROR) return diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/config/Config.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/config/Config.kt index f6f6aa2..72f2b74 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/config/Config.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/config/Config.kt @@ -18,6 +18,7 @@ data class ConnectionConfig( @SerialName("address") val address: String? = null, @SerialName("port") var port: Int? = null, @SerialName("token") val token: String? = null, + @SerialName("tokens") val tokens: List? = null, @SerialName("heartbeat_interval") var heartbeatInterval: Long? = null, )