in runtime/src/commonMain/kotlin/space/jetbrains/api/runtime/SpaceAuth.kt [8:27]
public suspend fun token(client: HttpClient, appInstance: SpaceAppInstance): SpaceTokenInfo
public class Token private constructor(
private val token: SpaceTokenInfo,
private val gapSecondsForExpiredCheck: Long = 5,
) : SpaceAuth {
public constructor(accessToken: String) : this(SpaceTokenInfo(accessToken, expires = null))
public constructor(
accessToken: String,
expires: Instant? = null,
gapSecondsForExpiredCheck: Long = 5,
) : this(SpaceTokenInfo(accessToken, expires), gapSecondsForExpiredCheck)
/** If token is expired, throws [TokenExpiredException] */
override suspend fun token(client: HttpClient, appInstance: SpaceAppInstance): SpaceTokenInfo {
if (token.expired(gapSeconds = gapSecondsForExpiredCheck)) throw TokenExpiredException()
return token
}
}