aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firebase/Auth/Source/AuthProviders/Twitter
diff options
context:
space:
mode:
Diffstat (limited to 'Firebase/Auth/Source/AuthProviders/Twitter')
-rw-r--r--Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthCredential.h48
-rw-r--r--Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthCredential.m51
-rw-r--r--Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthProvider.h52
-rw-r--r--Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthProvider.m36
4 files changed, 187 insertions, 0 deletions
diff --git a/Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthCredential.h b/Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthCredential.h
new file mode 100644
index 0000000..5fab4e2
--- /dev/null
+++ b/Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthCredential.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2017 Google
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#import <Foundation/Foundation.h>
+
+#import "../../Private/FIRAuthCredential_Internal.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/** @class FIRTwitterAuthCredential
+ @brief Internal implementation of FIRAuthCredential for Twitter credentials.
+ */
+@interface FIRTwitterAuthCredential : FIRAuthCredential
+
+/** @property token
+ @brief The Twitter OAuth token.
+ */
+@property(nonatomic, readonly) NSString *token;
+
+/** @property secret
+ @brief The Twitter OAuth secret.
+ */
+@property(nonatomic, readonly) NSString *secret;
+
+/** @fn initWithToken:secret:
+ @brief Designated initializer.
+ @param token The Twitter OAuth token.
+ @param secret The Twitter OAuth secret.
+ */
+- (nullable instancetype)initWithToken:(NSString *)token secret:(NSString *)secret
+ NS_DESIGNATED_INITIALIZER;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthCredential.m b/Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthCredential.m
new file mode 100644
index 0000000..6772d6f
--- /dev/null
+++ b/Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthCredential.m
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2017 Google
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#import "FIRTwitterAuthCredential.h"
+
+#import "FIRTwitterAuthProvider.h"
+#import "FIRAuthExceptionUtils.h"
+#import "FIRVerifyAssertionRequest.h"
+
+@interface FIRTwitterAuthCredential ()
+
+- (nullable instancetype)initWithProvider:(NSString *)provider NS_UNAVAILABLE;
+
+@end
+
+@implementation FIRTwitterAuthCredential
+
+- (nullable instancetype)initWithProvider:(NSString *)provider {
+ [FIRAuthExceptionUtils raiseMethodNotImplementedExceptionWithReason:
+ @"Please call the designated initializer."];
+ return nil;
+}
+
+- (nullable instancetype)initWithToken:(NSString *)token secret:(NSString *)secret {
+ self = [super initWithProvider:FIRTwitterAuthProviderID];
+ if (self) {
+ _token = [token copy];
+ _secret = [secret copy];
+ }
+ return self;
+}
+
+- (void)prepareVerifyAssertionRequest:(FIRVerifyAssertionRequest *)request {
+ request.providerAccessToken = _token;
+ request.providerOAuthTokenSecret = _secret;
+}
+
+@end
diff --git a/Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthProvider.h b/Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthProvider.h
new file mode 100644
index 0000000..d8f647d
--- /dev/null
+++ b/Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthProvider.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2017 Google
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#import <Foundation/Foundation.h>
+
+#import "FIRAuthSwiftNameSupport.h"
+
+@class FIRAuthCredential;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ @brief A string constant identifying the Twitter identity provider.
+ */
+extern NSString *const FIRTwitterAuthProviderID FIR_SWIFT_NAME(TwitterAuthProviderID);
+
+/** @class FIRTwitterAuthProvider
+ @brief Utility class for constructing Twitter credentials.
+ */
+FIR_SWIFT_NAME(TwitterAuthProvider)
+@interface FIRTwitterAuthProvider : NSObject
+
+/** @fn credentialWithToken:secret:
+ @brief Creates an @c FIRAuthCredential for a Twitter sign in.
+
+ @param token The Twitter OAuth token.
+ @param secret The Twitter OAuth secret.
+ @return A FIRAuthCredential containing the Twitter credential.
+ */
++ (FIRAuthCredential *)credentialWithToken:(NSString *)token secret:(NSString *)secret;
+
+/** @fn init
+ @brief This class is not meant to be initialized.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthProvider.m b/Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthProvider.m
new file mode 100644
index 0000000..5d738ce
--- /dev/null
+++ b/Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthProvider.m
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2017 Google
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#import "FIRTwitterAuthProvider.h"
+
+#import "FIRTwitterAuthCredential.h"
+#import "FIRAuthExceptionUtils.h"
+
+// FIRTwitterAuthProviderID is defined in FIRAuthProvider.m.
+
+@implementation FIRTwitterAuthProvider
+
+- (instancetype)init {
+ [FIRAuthExceptionUtils raiseMethodNotImplementedExceptionWithReason:
+ @"This class is not meant to be initialized."];
+ return nil;
+}
+
++ (FIRAuthCredential *)credentialWithToken:(NSString *)token secret:(NSString *)secret {
+ return [[FIRTwitterAuthCredential alloc] initWithToken:token secret:secret];
+}
+
+@end