suspend fun login(username: String, password: String): Pair { val bearerTokenStorage = mutableListOf() val client = HttpClient(Js) { install(Logging) install(ContentNegotiation) { json(Json) } install(Auth) { bearer { sendWithoutRequest { request -> request.url.host == "$backend/users/sign_in" } } } } val userData = User(user = UserData(username = username, password = password)) val response: HttpResponse = client.post("$backend/users/sign_in") { headers { append(HttpHeaders.AccessControlAllowOrigin, "*") } contentType(ContentType.Application.Json) setBody(userData) } if (response.status == HttpStatusCode.OK) { val token = response.headers[HttpHeaders.Authorization] console.log("Authorization Header: $token, ${bearerTokenStorage.firstOrNull()}") // Handle successful authentication } else { console.log("auth failed") // Handle authentication failure } client.close() return Pair(response.status, JSON.parse(response.body())) }