From 80dd669af33ffabfb00cc01cab594c3687accc0b Mon Sep 17 00:00:00 2001 From: Roma Sosnovsky Date: Thu, 30 Dec 2021 17:25:32 +0200 Subject: [PATCH] #1222 add minExpiryDuration to id tokens --- FlowCrypt/Functionality/Services/GoogleUserService.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/FlowCrypt/Functionality/Services/GoogleUserService.swift b/FlowCrypt/Functionality/Services/GoogleUserService.swift index 32344d0b6..66f7a2aa2 100644 --- a/FlowCrypt/Functionality/Services/GoogleUserService.swift +++ b/FlowCrypt/Functionality/Services/GoogleUserService.swift @@ -47,8 +47,8 @@ struct IdToken: Codable { } extension IdToken { - var isExpired: Bool { - Double(exp) < Date().timeIntervalSince1970 + var expiryDuration: Double { + Date(timeIntervalSince1970: Double(exp)).timeIntervalSinceNow } } @@ -254,12 +254,12 @@ extension GoogleUserService { // MARK: - Tokens extension GoogleUserService { - func getCachedOrRefreshedIdToken() async throws -> String { + func getCachedOrRefreshedIdToken(minExpiryDuration: Double = 0) async throws -> String { guard let idToken = idToken else { throw(IdTokenError.missingToken) } let decodedToken = try decode(idToken: idToken) - guard !decodedToken.isExpired else { + guard decodedToken.expiryDuration > minExpiryDuration else { let (_, updatedToken) = try await performTokenRefresh() return updatedToken }