linphone-iphone/Linphone/Utils/SingleSignOn/AuthState.swift
Christophe Deschamps 2d0f50d11a Single Sign On
2024-06-05 17:48:13 +02:00

44 lines
1.6 KiB
Swift

/*
* Copyright (c) 2010-2023 Belledonne Communications SARL.
*
* This file is part of linphone-iphone
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import Foundation
import AppAuth
class AuthState: Encodable, Decodable {
var accessToken: String?
var refreshToken: String?
var tokenEndpointUri: String?
var accessTokenExpirationTime: Date?
var isAuthorized: Bool
init(oidAuthState: OIDAuthState) {
accessToken = oidAuthState.lastTokenResponse?.accessToken
refreshToken = oidAuthState.refreshToken
tokenEndpointUri = oidAuthState.lastTokenResponse?.request.configuration.tokenEndpoint.absoluteString
accessTokenExpirationTime = oidAuthState.getAccessTokenExpirationTime()
isAuthorized = oidAuthState.isAuthorized
}
func update(tokenResponse: OIDTokenResponse) {
accessToken = tokenResponse.accessToken
refreshToken = tokenResponse.refreshToken
tokenEndpointUri = tokenResponse.request.configuration.tokenEndpoint.absoluteString
accessTokenExpirationTime = tokenResponse.accessTokenExpirationDate
}
}