Files
element-x-ios/ElementX/Sources/Services/Client/OpenIDToken.swift
T
joel.poyet 00f08ab2dc Add HealthChat API and extended profile services (#9)
Expose OpenID tokens and homeserver credentials from the client proxy, and
add fork-only services for the HealthChat member directory backend
(api.healthchat.ch) plus a service that reads MSC4133 extended profile
fields directly from the homeserver. Groundwork for the members tab and
the profile screens.

Claude-Session: https://claude.ai/code/session_013qdTbAWsZj2quQzEkagXaS
2026-09-22 18:21:58 +02:00

37 lines
1.2 KiB
Swift

//
// Copyright 2026 Element Creations Ltd.
//
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
// Please see LICENSE files in the repository root for full details.
//
import Foundation
import MatrixRustSDK
/// An OpenID token that third-party services can use to verify the user's identity
/// against the homeserver (MSC1961). Short-lived — cache per call site.
nonisolated struct OpenIDToken: Equatable {
let accessToken: String
let matrixServerName: String
/// The interval after which the token expires, relative to when it was requested.
let expiresIn: TimeInterval
init(accessToken: String, matrixServerName: String, expiresIn: TimeInterval) {
self.accessToken = accessToken
self.matrixServerName = matrixServerName
self.expiresIn = expiresIn
}
init(rustValue: MatrixRustSDK.OpenIdToken) {
accessToken = rustValue.accessToken
matrixServerName = rustValue.matrixServerName
expiresIn = TimeInterval(rustValue.expiresInSeconds)
}
}
extension OpenIDToken: CustomStringConvertible {
var description: String {
"OpenIDToken(matrixServerName: \(matrixServerName), accessToken: <redacted>)"
}
}