AccessTokenDetails

A protocol for access token metadata


Definition

public protocol AccessTokenDetails: Sendable {
    var accessToken: String { get }
    var expiresIn: Int { get }
    var scope: String { get }
    var tokenType: String { get }
}

Sample Usage

struct CreateAccessTokenDetailsResponse: AccessTokenDetails {
    var accessToken: String
    var expiresIn: Int
    var scope: String
    var tokenType: String
}

if let url = URL(string: "https://example.com/v1/oauth/token") {
    var urlRequest = URLRequest(url: url)
    urlRequest.httpMethod = "POST"
    if let (data, _) = try? await URLSession.shared.data(for: urlRequest),
       let accessTokenDetails: AccessTokenDetails? = try? JSONDecoder().decode(CreateAccessTokenDetailsResponse.self, from: data) {
        ...
    }
}