如何判断用户是否登录
的iOS:如何验证登录后,用户(自动登录)?
iphone ios xcode autologin
我想自动登录函数。因此,当打开的应用程序,他被委派给一个“登录屏幕”。当他登录的,他应该被引导到他的账户。我把这称为“帐户屏幕”。现在,当重新启动应用程序,他应该得到直接定向到他的帐户,没有看到“登录屏幕”。 登录函数已经在我的项目中工作正常(和密码保存在UserDefault) CodeGo.net,但我关闭该应用程序,我要再次登录。所以我的问题是:如何以自动或更好地说:我要如何检查数据(保存在UserDefault)是在数据库(MySQL的)? 在此先感谢。
本文地址 :CodeGo.net/447673/
-------------------------------------------------------------------------------------------------------------------------
1. 对于优先次登录时,您保存 凭据在iPhone的钥匙串。 当应用程序被再次打开,你检查凭证 目前在钥匙串,如果是,你的代码应该调用login 逻辑和做自动登录和登录后,屏幕进入画面。如果没有, 那么你应该显示登录屏幕。您可以在AppDelegates applicationDidFinishLaunching做到这一点的逻辑。 点击注销按钮 CodeGo.net,从凭证 keychain优先,并返回到登录控制器。 只需添加登录凭据keychain日志中,仅将其删除点击注销按钮。退出该应用程序没有退出,然后凭据仍然会在钥匙串,你可以检索它们返回给应用程序。 编辑:我想我必须补充一件事。如果您的登录逻辑需要(比如你的web请求,或将登录逻辑代码在你登录的ViewController,而不是ApplicationDelegate,任何活动指示灯在自动登录过程。 编辑:我编辑了完整的答案,取代NSUserDefaultkeychain。这个线程解释了为什么。
2. 同时保存和密码,它是高度应保存在钥匙串,而不是NSUserDefaults。 请参考这个帖子以更好地理解:
3. 要回答这个问题:如果你想自动登录与钥匙串数据,使用free的“SFHFKeychainUtils”。它保存的密码和钥匙串。如果你想找回它,只是保存在NSUserDefaults,你可以得到密码轻松。 在这里,我们去: SIFI音响 SIFI音响( 如何SFHFKeychainUtils:
4. 的NSUserDefaults和SSKeychain。 NSUserDefaults存储河畔SSKeychain来存储密码。 这是代码保存的凭证
NSString *user = self.username.text;
NSString *password = self.pass.text;
[SSKeychain setPassword:password forService:@"achat" account:user];
NSUserDefaults *dUser = [NSUserDefaults standardUserDefaults];
[dUser setObject:user forKey:@"user"];
[dUser synchronize];
这是为了检索凭据的代码
NSUserDefaults *eUser = [NSUserDefaults standardUserDefaults];
NSString *savedUser = [eUser objectForKey:@"user"];
if (!savedUser) {
UIAlertView *uhoh = [[UIAlertView alloc] initWithTitle:@"Oops!" message:@"Please enter your username and password." delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil, nil];
[uhoh show];
}
else {
NSString *savedPass = [SSKeychain passwordForService:@"achat" account:savedUser];
self.username.text = savedUser;
self.pass.text = savedPass;
}