【Swift】FirebaseUI를 사용한 Twitter 로그인 기능 구현 방법 ①
소개
개인 앱을 만들 때 FirebaseUI를 사용한 Twitter 로그인 기능을 구현했으므로,
비망록이 테라 명령의 공유를하겠습니다.
또, 너무 길어서 하나의 기사에 모두를 쓸 수 없었기 때문에 3개의 기사로 나누었습니다.
본 기사는 완성형과 코드의 전용이 됩니다.
구현 절차에 대한 기사는 다음과 같습니다.
· 【Swift】FirebaseUI를 사용한 Twitter 로그인 기능의 구현 방법②
· 【Swift】FirebaseUI를 사용한 Twitter 로그인 기능의 구현 방법③
환경
· Swift 버전 5.3
·XCode 버전 12.3
· CocoaPods 버전 1.10.1
전제로
· CocoaPods
・ Twitter API에 등록되어 있는 것
・ Firebase console에 등록되어 있는 것
완성형
로그인 후 Firebase Authentication
사용자가 추가되었음을 알 수 있습니다.
코드
AppDelegate.swift
import UIKit
import Firebase
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
return true
}
// MARK: UISceneSession Lifecycle
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
// Called when a new scene session is being created.
// Use this method to select a configuration to create the new scene with.
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
}
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
// Called when the user discards a scene session.
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
}
}
ViewController.swift
import UIKit
import Firebase
import FirebaseUI
class ViewController: UIViewController, FUIAuthDelegate {
let authUI = FUIAuth.defaultAuthUI()
let providers: [FUIAuthProvider] = [
FUIOAuth.twitterAuthProvider()
]
override func viewDidLoad() {
super.viewDidLoad()
authUI!.delegate = self
authUI!.providers = providers
checkLoggedIn()
}
// ログイン(ログイン失敗)後に呼ばれるメソッド
func authUI(_ authUI: FUIAuth, didSignInWith user: User?, error: Error?) {
// handle user and error as necessary
}
func checkLoggedIn() {
Auth.auth().addStateDidChangeListener{auth, user in
if user != nil{
print("success")
} else {
print("fail")
self.login()
}
}
}
func login() {
let authViewController = authUI!.authViewController()
self.present(authViewController, animated: true, completion: nil)
}
}
Reference
이 문제에 관하여(【Swift】FirebaseUI를 사용한 Twitter 로그인 기능 구현 방법 ①), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/onishi_820/items/629050db71731aeffef5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
· CocoaPods
・ Twitter API에 등록되어 있는 것
・ Firebase console에 등록되어 있는 것
완성형
로그인 후 Firebase Authentication
사용자가 추가되었음을 알 수 있습니다.
코드
AppDelegate.swift
import UIKit
import Firebase
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
return true
}
// MARK: UISceneSession Lifecycle
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
// Called when a new scene session is being created.
// Use this method to select a configuration to create the new scene with.
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
}
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
// Called when the user discards a scene session.
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
}
}
ViewController.swift
import UIKit
import Firebase
import FirebaseUI
class ViewController: UIViewController, FUIAuthDelegate {
let authUI = FUIAuth.defaultAuthUI()
let providers: [FUIAuthProvider] = [
FUIOAuth.twitterAuthProvider()
]
override func viewDidLoad() {
super.viewDidLoad()
authUI!.delegate = self
authUI!.providers = providers
checkLoggedIn()
}
// ログイン(ログイン失敗)後に呼ばれるメソッド
func authUI(_ authUI: FUIAuth, didSignInWith user: User?, error: Error?) {
// handle user and error as necessary
}
func checkLoggedIn() {
Auth.auth().addStateDidChangeListener{auth, user in
if user != nil{
print("success")
} else {
print("fail")
self.login()
}
}
}
func login() {
let authViewController = authUI!.authViewController()
self.present(authViewController, animated: true, completion: nil)
}
}
Reference
이 문제에 관하여(【Swift】FirebaseUI를 사용한 Twitter 로그인 기능 구현 방법 ①), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/onishi_820/items/629050db71731aeffef5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
AppDelegate.swift
import UIKit
import Firebase
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
return true
}
// MARK: UISceneSession Lifecycle
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
// Called when a new scene session is being created.
// Use this method to select a configuration to create the new scene with.
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
}
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
// Called when the user discards a scene session.
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
}
}
ViewController.swift
import UIKit
import Firebase
import FirebaseUI
class ViewController: UIViewController, FUIAuthDelegate {
let authUI = FUIAuth.defaultAuthUI()
let providers: [FUIAuthProvider] = [
FUIOAuth.twitterAuthProvider()
]
override func viewDidLoad() {
super.viewDidLoad()
authUI!.delegate = self
authUI!.providers = providers
checkLoggedIn()
}
// ログイン(ログイン失敗)後に呼ばれるメソッド
func authUI(_ authUI: FUIAuth, didSignInWith user: User?, error: Error?) {
// handle user and error as necessary
}
func checkLoggedIn() {
Auth.auth().addStateDidChangeListener{auth, user in
if user != nil{
print("success")
} else {
print("fail")
self.login()
}
}
}
func login() {
let authViewController = authUI!.authViewController()
self.present(authViewController, animated: true, completion: nil)
}
}
Reference
이 문제에 관하여(【Swift】FirebaseUI를 사용한 Twitter 로그인 기능 구현 방법 ①), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/onishi_820/items/629050db71731aeffef5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)