Index: remoting/ios/facade/remoting_authentication.h |
diff --git a/remoting/ios/facade/remoting_authentication.h b/remoting/ios/facade/remoting_authentication.h |
index 5eeed4f4925a167cf319cfde33edf92a26cec099..92e0fc79340187102579616fa847d8c11bc87859 100644 |
--- a/remoting/ios/facade/remoting_authentication.h |
+++ b/remoting/ios/facade/remoting_authentication.h |
@@ -5,11 +5,19 @@ |
#ifndef REMOTING_IOS_FACADE_REMOTING_AUTHENTICATION_H_ |
#define REMOTING_IOS_FACADE_REMOTING_AUTHENTICATION_H_ |
-#import "remoting/client/chromoting_client_runtime.h" |
#import "remoting/ios/domain/user_info.h" |
#include "base/memory/weak_ptr.h" |
-#include "remoting/base/oauth_token_getter.h" |
+ |
+typedef NS_ENUM(NSInteger, RemotingAuthenticationStatus) { |
+ RemotingAuthenticationStatusSuccess, |
+ RemotingAuthenticationStatusNetworkError, |
+ RemotingAuthenticationStatusAuthError |
+}; |
+ |
+typedef void (^AccessTokenCallback)(RemotingAuthenticationStatus status, |
+ NSString* userEmail, |
+ NSString* accessToken); |
// |RemotingAuthenticationDelegate|s are interested in authentication related |
// notifications. |
@@ -20,28 +28,23 @@ |
@end |
-// This is the class that will manage the details around authentication |
+// This is the interface that will manage the details around authentication |
// management and currently active user. It will make sure the user object is |
// saved to the keychain correctly and loaded on startup. It also is the entry |
// point for gaining access to an auth token for authrized calls. |
-@interface RemotingAuthentication : NSObject |
- |
-// Provide an |authorizationCode| to authenticate a user as the first time user |
-// of the application or OAuth Flow. |
-- (void)authenticateWithAuthorizationCode:(NSString*)authorizationCode; |
+@protocol RemotingAuthentication<NSObject> |
-// Fetches an OAuth Access Token and passes it back to the callback if |
-// the user is authenticated. Otherwise does nothing. |
+// Fetches an Access Token and passes it back to the callback if the user is |
+// authenticated. Otherwise does nothing. |
// TODO(nicholss): We might want to throw an error or add error message to |
// the callback sig to be able to react to the un-authed case. |
-- (void)callbackWithAccessToken: |
- (const remoting::OAuthTokenGetter::TokenCallback&)onAccessToken; |
+- (void)callbackWithAccessToken:(AccessTokenCallback)onAccessToken; |
// Forget the current user. |
- (void)logout; |
// Returns the currently logged in user or nil. |
-@property(strong, nonatomic) UserInfo* user; |
+@property(strong, nonatomic, readonly) UserInfo* user; |
// Delegate recieves updates on user changes. |
@property(weak, nonatomic) id<RemotingAuthenticationDelegate> delegate; |