如何使用解析保持当前用户会话处于活动状态?
how to keep current user session active using parse?
我试图让当前用户会话保持活动状态,直到用户决定注销。我应该实施什么代码?究竟应该在哪里实施?根视图的 viewDidLoad 或 viewWillAppear 函数?我尝试在我的根视图中使用此代码:
override func viewDidAppear(animated: Bool) {
let vc = ViewController()
var loggedIn = false
if PFUser.currentUser() != nil {
loggedIn = true
} else {
presentViewController(vc, animated: true, completion: nil)
}
}
但是每当我停止模拟器并再次运行它时,我都必须重新登录。什么是最好的解决方案? keep in my "ViewController" 是我的主视图,它包含我的 login/sign 字段。所以我基本上想要一种方法来说明当前用户会话是否存在,继续,否则显示初始视图。
当您使用 signUpInBackgroundWithBlock
(objective -c) 正确注册用户时,Parse 会为您处理此问题。
PFUser.currentUser()
应该一直可用,直到您主动注销。
也许您尝试注册 -> 失败 -> 继续下一步 VC -> 在未实际注册的情况下重新启动应用程序?
在您的应用委托中试试这个...
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
PFUser *currentUser = [PFUser currentUser];
if (currentUser) {
// there is a user logged in go to the main screen
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
MainViewController *mainViewController = (MainViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"Main"];
//set the root controller to it
self.window.rootViewController = mainViewController;
} else {
// Log in!
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Login" bundle: nil];
LoginViewController *loginViewController = (LoginViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"Login"];
//set the root controller to it
self.window.rootViewController = loginViewController;
}
...
Parse 已经为开发者提供了Session(用于会话管理)。如需进一步帮助,请参阅以下 link 中的会话部分...
https://parse.com/docs/ios/guide
我试图让当前用户会话保持活动状态,直到用户决定注销。我应该实施什么代码?究竟应该在哪里实施?根视图的 viewDidLoad 或 viewWillAppear 函数?我尝试在我的根视图中使用此代码:
override func viewDidAppear(animated: Bool) {
let vc = ViewController()
var loggedIn = false
if PFUser.currentUser() != nil {
loggedIn = true
} else {
presentViewController(vc, animated: true, completion: nil)
}
}
但是每当我停止模拟器并再次运行它时,我都必须重新登录。什么是最好的解决方案? keep in my "ViewController" 是我的主视图,它包含我的 login/sign 字段。所以我基本上想要一种方法来说明当前用户会话是否存在,继续,否则显示初始视图。
signUpInBackgroundWithBlock
(objective -c) 正确注册用户时,Parse 会为您处理此问题。
PFUser.currentUser()
应该一直可用,直到您主动注销。
也许您尝试注册 -> 失败 -> 继续下一步 VC -> 在未实际注册的情况下重新启动应用程序?
在您的应用委托中试试这个...
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
PFUser *currentUser = [PFUser currentUser];
if (currentUser) {
// there is a user logged in go to the main screen
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
MainViewController *mainViewController = (MainViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"Main"];
//set the root controller to it
self.window.rootViewController = mainViewController;
} else {
// Log in!
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Login" bundle: nil];
LoginViewController *loginViewController = (LoginViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"Login"];
//set the root controller to it
self.window.rootViewController = loginViewController;
}
...
Parse 已经为开发者提供了Session(用于会话管理)。如需进一步帮助,请参阅以下 link 中的会话部分... https://parse.com/docs/ios/guide