blob: 799c23a386dbcf3c0c0225875df457afccc126b5 [file] [log] [blame]
// Copyright 2016 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
import Foundation
/// The provider of the oauth token, such as Google.
public enum OAuthProvider: String {
/// Currently, Google is the only supported provider.
case Google = "google"
}
/// Represents a valid OAuth token obtained from an OAuth provider such as Google.
public protocol OAuthCredentials {
/// The oauth provider, e.g. OAuthProvider.Google.
var provider: OAuthProvider { get }
/// The oauth token just received from the provider.
var token: String { get }
}
/// Shortcut for OAuthCredentials provided by Google.
public struct GoogleOAuthCredentials: OAuthCredentials {
public let token: String
public let provider = OAuthProvider.Google
public init(token: String) {
self.token = token
}
}