gpt4 book ai didi

ios - 首次登录 Backendless 后保留用户

转载 作者:行者123 更新时间:2023-11-30 13:31:36 25 4
gpt4 key购买 nike

我正在尝试这样做,以便即使应用程序关闭,用户也可以保持登录状态。我似乎无法让我的功能正常工作。我有一个让用户登录的函数,当按下按钮时它就可以工作,但我似乎无法在正确的位置调用该函数以使其仅在用户第一次登录然后关闭后加载该应用程序但不注销。这是我的 View Controller 代码:

View Controller

import UIKit
import FBSDKCoreKit
import FBSDKLoginKit

class ViewController: UIViewController {


let APP_ID = "i have it"
let SECRET_KEY = "i have it"
let VERSION_NUM = "v1"

var backendless = Backendless.sharedInstance()




@IBOutlet weak var userEmail: UITextField!


@IBOutlet weak var password: UITextField!


func displayAlert(title: String, message: String) {

let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction((UIAlertAction(title: "OK", style: .Default, handler: { (action) -> Void in

self.dismissViewControllerAnimated(true, completion: nil)

})))

self.presentViewController(alert, animated: true, completion: nil)


}







@IBAction func signUp(sender: AnyObject) {

let user = BackendlessUser()
user.email = self.userEmail.text
user.password = self.password.text


if userEmail.text == "" || password.text == ""{

displayAlert("Error in form", message: "Please enter a email adress and password")

} else{

backendless.userService.registering(user,
response: { (registeredUser : BackendlessUser!) -> () in
print("User has been registered (ASYNC): \(registeredUser)")
},
error: { ( fault : Fault!) -> () in
print("Server reported an error: \(fault)")
}
)
}

}




@IBAction func logIn(sender: AnyObject) {


if userEmail.text == "" || password.text == ""{

displayAlert("Error in form", message: "Please enter a email adress and password")

}else{





loginUserAsync()


let appDelegate = UIApplication.sharedApplication().delegate! as! AppDelegate

var initialViewController = self.storyboard!.instantiateViewControllerWithIdentifier("myTabbarControllerID") as! UIViewController
appDelegate.window?.rootViewController = initialViewController
appDelegate.window?.makeKeyAndVisible()



}
}


func loginUserAsync() {

let user = BackendlessUser()
user.email = self.userEmail.text
user.password = self.password.text

backendless.userService.login(

self.userEmail.text, password:self.password.text,

response: { ( user : BackendlessUser!) -> () in

self.backendless.userService.setPersistentUser()

self.backendless.userService.setStayLoggedIn( true )

self.backendless.userService.getPersistentUser()

let user = self.backendless.userService.currentUser

if (user != nil) {

// get user's email (i.e. mandatory/predefined property)

let userEmail = user.email
let password = user.password



let appDelegate = UIApplication.sharedApplication().delegate! as! AppDelegate

var initialViewController = self.storyboard!.instantiateViewControllerWithIdentifier("myTabbarControllerID") as! UIViewController
appDelegate.window?.rootViewController = initialViewController
appDelegate.window?.makeKeyAndVisible()
}

else if (user == nil) {

print("User hasn't been logged")

}

},

error: { ( fault : Fault!) -> () in

print("Server reported an error: \(fault)")

}

)

}

func validUserTokenAsync() {
backendless.userService.isValidUserToken(
{ (var result : AnyObject!) -> () in
print("isValidUserToken (ASYNC): \(result.boolValue)")
},
error: { (var fault : Fault!) -> () in
print("Server reported an error (ASYNC): \(fault)")
}
)
}


override func viewDidLoad() {
super.viewDidLoad()



let loginButton = FBSDKLoginButton()
loginButton.center = self.view.center
self.view.addSubview(loginButton)



}


override func viewDidAppear(animated: Bool) {
loginUserAsync()
}


override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}









}

最佳答案

确保调用以下函数:

self.backendless.userService.setStayLoggedIn( true )

在“backendless.userService.login”之前,而不是在登录响应处理程序中。

关于ios - 首次登录 Backendless 后保留用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36511598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com