과거에 로그인 한 상태에서 사용자가 앱에 자동으로 로그인하도록하는 더 좋은 방법이 있습니까? 안전하지 않을 수도있는 저장소에 로그인 세부 정보를 직접 저장하는 것 외에는?iOS에서 Firebase 자동 로그인
감사
PS : 나는 아이폰 OS
편집에 대한 중포 기지와 스위프트을 사용하고 있습니다 :
@IBAction func logOutTapped(sender: AnyObject) {
try! FIRAuth.auth()?.signOut()
performSegueWithIdentifier("showLoginVC", sender: self)
print(FIRAuth.auth()?.currentUser?.displayName)
}
: 여기 또한 사용자를 로그 아웃이 사용
import UIKit
import Firebase
class loginVC: UIViewController {
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
@IBOutlet weak var errorLabel: UILabel!
override func viewDidAppear(animated: Bool) {
automaticLogin()
}
@IBAction func loginTapped(sender: AnyObject) {
errorLabel.text = ""
FIRAuth.auth()?.createUserWithEmail(emailTextField.text!, password: passwordTextField.text!, completion: {
user, error in
if error != nil {
FIRAuth.auth()?.signInWithEmail(self.emailTextField.text!, password: self.passwordTextField.text!, completion: { (user, error) in
if error == nil {
self.login()
} else if error != nil {
self.errorLabel.text = ("Invalid email address or password")
print(error)
}
})
} else {
print("user created")
self.login()
print(user?.displayName)
}
})
}
@IBAction func forgotPasswordTapped(sender: AnyObject) {
let email = emailTextField.text
errorLabel.text = ""
FIRAuth.auth()?.sendPasswordResetWithEmail(email!) { error in
if error != nil {
self.errorLabel.text = ("Invalid email address")
print(error)
} else {
self.errorLabel.text = ("Password reset email successfully sent")
print("password reset email sent")
}
}
}
func login() {
FIRAuth.auth()?.signInWithEmail(emailTextField.text!, password: passwordTextField.text!, completion: {
user, error in
if error != nil {
self.errorLabel.text = ("Invalid email address or password")
print(error)
} else {
print("login successful")
self.checkIfUserIsNew()
}
})
}
func checkIfUserIsNew() {
if FIRAuth.auth()?.currentUser?.displayName != nil || FIRAuth.auth()?.currentUser?.displayName == "" {
self.performSegueWithIdentifier("showChatVC", sender: self)
} else {
self.performSegueWithIdentifier("showOptionsVC", sender: self)
}
}
func automaticLogin() {
FIRAuth.auth()?.addAuthStateDidChangeListener { auth, user in
if user == user {
print("still signed in")
} else {
print("not signed in")
}
}
}
코드입니다
Firebase 문서를 확인 했습니까? 내게 안전하지 않은 저장소에 직접 로그인 세부 정보가 있다는 것은 무엇을 의미합니까? –
Firebase 인증은 앱 실행 사이에 사용자의 인증 토큰을 유지합니다. 'addAuthStateDidChangeListener'를 사용하면 기존 세션을 선택할 수 있습니다. https://firebase.google.com/docs/auth/ios/manage-users#get_the_currently_signed-in_user –
해당 기능을 사용해 보았지만 의도 한대로 작동하지 않았습니다. 원래 코드에 코드를 추가했습니다. –