iOS - 记住用户登录状态保存用户名密码

    我们在使用APP时常用的一个功能:用户第一次进入APP时自动进入登录注册页,提示用户注册登录,用户登录成功后才进入主页,再次进入APP时,不用再次登录就直接进到主页了,就算杀掉该APP进程再次进入,依然进入主页.        
    苹果给我们iOS开发者提供了一个NSUserDefault类,用来持久化存储用户的登录信息,只有卸载APP才能抹掉这些登陆信息.

1.在登陆页面对应的类loginViewController.h中定义两个TextField和一个Button,用来接受用户输入的用户名和密码,点击按钮登陆,如果登陆成功,就将用户的登陆信息存放在UserDefault中,然后跳入主页面

2.在loginViewController.m中实现两个TextField和一个Button,UI方面的代码就不粘贴了,直接实现按钮的点击登录事件:登录请求成功后,走成功回调,回调下面实现将用户名和密码存入UserDefault中,页面跳转到主页面.下面数据请求的代码就不粘贴了,直接上存储UserDefault代码,跳转主页面.ps:#import "AppDelegate.h"
 
3.在AppDelegate.h中实现:用户第一次进入APP时自动进入登录注册页,提示用户注册登录,用户登录成功后才进入主页,再次进入APP时,不用再次登录就直接进到主页了.
 
补充说明:如果你的登录页是自定义的导航栏,跳转登录页做此修改
 

4.执行完登录操作后,给“username”字段赋一个非空值,这样下次到AppDelegate时,判断之后就会进入到主页了

5.最后,该如何移除自动登录这种状态呢,或者切换用户登录.在你的退出登录按钮事件中实现.

6.好了,保存登录状态,移除等操作的都已经实现了.
 
 
 
 
 
//用户登录信息key
#define kUserInfoKey @"userInfoKey"
//用户登录信息密码
//#define kUserPwdKey @"userPwdKey"


1、
[MBProgressHUD showSuccess:@"登录成功" toView:self.view];
                [[NSUserDefaults standardUserDefaults] setObject:self.phoneNumTF.text forKey:kUserInfoKey];//保存登录用户名
//                [[NSUserDefaults standardUserDefaults] setObject:self.pwdTF.text forKey:kUserPwdKey];//保存密码

2、
[MBProgressHUD showSuccess:@"注册成功" toView:self.view];
            [[NSUserDefaults standardUserDefaults] setObject:self.phoneTF.text forKey:kUserInfoKey];
//            [[NSUserDefaults standardUserDefaults] setObject:self.pwdTF.text forKey:kUserPwdKey];

3- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

SDLoginViewController *login = [[SDLoginViewController alloc] init];
    SDNavigationController *nav = [[SDNavigationController alloc] initWithRootViewController:login];
    self.window.rootViewController = nav;
    NSString *userPhone = [[NSUserDefaults standardUserDefaults] objectForKey:kUserInfoKey];
//    NSString *userPwd = [[NSUserDefaults standardUserDefaults] objectForKey:kUserPwdKey];
    login.userLoginName = userPhone;
//    login.userPwdTF = userPwd;    

}

4、
#import "SDLoginViewController.h"

if (self.userLoginName.length == 0) {
        self.phoneNumTF.placeholder = @"手机号/用户名/邮箱";
        [self.phoneNumTF setValue:[UIColor colorWithHexString:@"#A7A7A7"] forKeyPath:@"_placeholderLabel.textColor"];
    } else {
        self.phoneNumTF.text = self.userLoginName;
    }
    if (self.userPwdTF.length == 0) {
        self.pwdTF.placeholder = @"密码";
        [self.pwdTF setValue:[UIColor colorWithHexString:@"#A7A7A7"] forKeyPath:@"_placeholderLabel.textColor"];
    } else {
        self.pwdTF.text = self.userPwdTF;
    }

猜你喜欢

转载自www.cnblogs.com/gongyuhonglou/p/10565516.html