blob: 7ab00b8a7ce25f99f4488acd09b7d4c62e81f551 [file] [log] [blame]
/*
* GIDAuthentication.h
* Google Sign-In iOS SDK
*
* Copyright 2014 Google Inc.
*
* Use of this SDK is subject to the Google APIs Terms of Service:
* https://developers.google.com/terms/
*/
#import <Foundation/Foundation.h>
@protocol GTMFetcherAuthorizationProtocol;
@class GIDAuthentication;
// @relates GIDAuthentication
//
// The callback block that takes a GIDAuthentication, or an error if attempt to refresh was
// unsuccessful.
typedef void (^GIDAuthenticationHandler)(GIDAuthentication *authentication, NSError *error);
// @relates GIDAuthentication
//
// The callback block that takes an access token, or an error if attempt to refresh was
// unsuccessful.
typedef void (^GIDAccessTokenHandler)(NSString *accessToken, NSError *error);
// This class represents the OAuth 2.0 entities needed for sign-in.
@interface GIDAuthentication : NSObject <NSCoding>
// The client ID associated with the authentication.
@property(nonatomic, readonly) NSString *clientID;
// The OAuth2 access token to access Google services.
@property(nonatomic, readonly) NSString *accessToken;
// The estimated expiration date of the access token.
@property(nonatomic, readonly) NSDate *accessTokenExpirationDate;
// The OAuth2 refresh token to exchange for new access tokens.
@property(nonatomic, readonly) NSString *refreshToken;
// An OpenID Connect ID token that identifies the user. Send this token to your server to
// authenticate the user there. For more information on this topic, see
// https://developers.google.com/identity/sign-in/ios/backend-auth
@property(nonatomic, readonly) NSString *idToken;
// The estimated expiration date of the ID token.
@property(nonatomic, readonly) NSDate *idTokenExpirationDate;
// Gets a new authorizer for GTLService, GTMSessionFetcher, or GTMHTTPFetcher.
- (id<GTMFetcherAuthorizationProtocol>)fetcherAuthorizer;
// Get a valid access token and a valid ID token, refreshing them first if they have expired or are
// about to expire.
- (void)getTokensWithHandler:(GIDAuthenticationHandler)handler;
// Refreshes the access token and the ID token using the refresh token.
- (void)refreshTokensWithHandler:(GIDAuthenticationHandler)handler;
// Gets the access token, which may be a new one from the refresh token if the original has already
// expired or is about to expire. Deprecated: use |getTokensWithHandler:| to get access tokens
// instead.
- (void)getAccessTokenWithHandler:(GIDAccessTokenHandler)handler
DEPRECATED_MSG_ATTRIBUTE("Use |getTokensWithHandler:| instead.");
// Refreshes the access token with the refresh token. Deprecated: Use |refreshTokensWithHandler:|
// to refresh access tokens instead.
- (void)refreshAccessTokenWithHandler:(GIDAccessTokenHandler)handler
DEPRECATED_MSG_ATTRIBUTE("Use |refreshTokensWithHandler:| instead.");
@end