iOS - 记住用户登录状态保存用户名密码
我们在使用APP时常用的一个功能:用户第一次进入APP时自动进入登录注册页,提示用户注册登录,用户登录成功后才进入主页,再次进入APP时,不用再次登录就直接进到主页了,就算杀掉该APP进程再次进入,依然进入主页.
苹果给我们iOS开发者提供了一个NSUserDefault类,用来持久化存储用户的登录信息,只有卸载APP才能抹掉这些登陆信息.
1.在登陆页面对应的类loginViewController.h中定义两个TextField和一个Button,用来接受用户输入的用户名和密码,点击按钮登陆,如果登陆成功,就将用户的登陆信息存放在UserDefault中,然后跳入主页面




4.执行完登录操作后,给“username”字段赋一个非空值,这样下次到AppDelegate时,判断之后就会进入到主页了
5.最后,该如何移除自动登录这种状态呢,或者切换用户登录.在你的退出登录按钮事件中实现.

//用户登录信息key
#define kUserInfoKey @"userInfoKey"
//用户登录信息密码
//#define kUserPwdKey @"userPwdKey" 、
[MBProgressHUD showSuccess:@"登录成功" toView:self.view];
[[NSUserDefaults standardUserDefaults] setObject:self.phoneNumTF.text forKey:kUserInfoKey];//保存登录用户名
// [[NSUserDefaults standardUserDefaults] setObject:self.pwdTF.text forKey:kUserPwdKey];//保存密码 、
[MBProgressHUD showSuccess:@"注册成功" toView:self.view];
[[NSUserDefaults standardUserDefaults] setObject:self.phoneTF.text forKey:kUserInfoKey];
// [[NSUserDefaults standardUserDefaults] setObject:self.pwdTF.text forKey:kUserPwdKey]; 、
- (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; } 、
#import "SDLoginViewController.h" if (self.userLoginName.length == ) {
self.phoneNumTF.placeholder = @"手机号/用户名/邮箱";
[self.phoneNumTF setValue:[UIColor colorWithHexString:@"#A7A7A7"] forKeyPath:@"_placeholderLabel.textColor"];
} else {
self.phoneNumTF.text = self.userLoginName;
}
if (self.userPwdTF.length == ) {
self.pwdTF.placeholder = @"密码";
[self.pwdTF setValue:[UIColor colorWithHexString:@"#A7A7A7"] forKeyPath:@"_placeholderLabel.textColor"];
} else {
self.pwdTF.text = self.userPwdTF;
}
iOS - 记住用户登录状态保存用户名密码的更多相关文章
- Django 用Session和Cookie分别实现记住用户登录状态
简介 由于http协议的请求是无状态的.故为了让用户在浏览器中再次访问该服务端时,他的登录状态能够保留(也可翻译为该用户访问这个服务端其他网页时不需再重复进行用户认证).我们可以采用Cookie或Se ...
- iOS开发之记录用户登录状态
iOS开发之记录用户登录状态 我们知道:CoreData的配置和使用步骤还是挺复杂的.但熟悉CoreData的使用流程后,CoreData还是蛮好用的.今天要说的是如何记录我们用户的登陆状态.例如微信 ...
- Asp.Net MVC记住用户登录信息 下次登录无需输入密码
有的时候做网站,就需要记住用户登录信息,下次再登录网站时,不用重复输入用户名和密码,原理是浏览器的cookie把状态给记住了! 那么具体是怎么实现的呢?下面博主将一部分代码贴出来,想要完整版的Demo ...
- Asp.Net使用加密cookie代替session验证用户登录状态 源码分享
首先 session 和 cache 拥有各自的优势而存在. 他们的优劣就不在这里讨论了. 本实例仅存储用户id于用户名,对于多级权限的架构,可以自行修改增加权限字段 本实例采用vs2010编写 ...
- 基于cookie的用户登录状态管理
cookie是什么 先来花5分钟看完这篇文章:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Cookies 看完上文,相信大家对cookie已经有 ...
- (转)TortoiseGit(乌龟git)保存用户名密码的方法
返回博客列表 转 TortoiseGit(乌龟git)保存用户名密码的方法 元谷 发布时间: 2014/05/03 23:07 阅读: 20529 收藏: 21 点赞: 12 评论: 3 window ...
- tortoiseGIT保存用户名密码
虽然GIT可以使用SSH来免去输入用户名密码的麻烦,但是更多的人我相信还是比较喜欢使用tortoiseGIT. 使用HTTP模式的代码库可以通过保存用户名密码的方式来免去重复输入的麻烦. 首先安装gi ...
- vue用户登录状态判断
之前项目中用来判断是否登录我写了多种方案,但是最终只有一个方案是比较好的,这篇博客就是分享该方案; 先说基本要求: 项目中的登录状态是依据服务器里的状态来作为判断依据; 每一个需要登录后才能操作的接口 ...
- C# MVC 用户登录状态判断 【C#】list 去重(转载) js 日期格式转换(转载) C#日期转换(转载) Nullable<System.DateTime>日期格式转换 (转载) Asp.Net MVC中Action跳转(转载)
C# MVC 用户登录状态判断 来源:https://www.cnblogs.com/cherryzhou/p/4978342.html 在Filters文件夹下添加一个类Authenticati ...
随机推荐
- Python3 与 NetCore 基础语法对比(List、Tuple、Dict、Set专栏)
Jupyter最新版:https://www.cnblogs.com/dotnetcrazy/p/9155310.html 在线演示:http://nbviewer.jupyter.org/githu ...
- 国际化之Android设备支持的语种
昨天发了关于iOS支持的语种,文章最后也补了安卓支持语种列表.但最后发现安卓设备支持跟它列的有出入,我重新完全手工整理了一遍. 我将对应的语种在安卓的语言列表里的显示,也全部逐一列出来了,方便大家到时 ...
- .Net:System.Guid
ylbtech-.Net:System.Guid 1.返回顶部 1.public static Guid NewGuid(); // // 摘要: // 初始化 System.Guid 结构的新实例. ...
- Android Studio3.0.1集成Git
1:前提 本机可以根据SSH的方式正常连接git服务器 2:开始配置 file-settings-Version Control 点击右边的+号天添加项目所在目录,VCS类型选择Git 点击 Conf ...
- gitlab配置通过smtp发送邮件(QQ exmail腾讯企业为例)
gitlab配置通过smtp发送邮件(QQ exmail腾讯企业为例) 首先祭出官网文档链接:https://docs.gitlab.com/omnibus/settings/smtp.html 其实 ...
- git强制修改注释
在一些公司项目中,常常要求git注释提交的时候加上前缀,比如JIRA号,但是有的时候我们常常会忘了 如果用source tree等一些工具,会推送到本地仓库一半,但远程又上不去. 这个时候我们就需要强 ...
- Device does not seem to be present [常见错误解决]
一.故障现象: [root@c1node01 ~]# service network restart Shutting down loopback insterface: ...
- RabbitMQ五种消息队列学习(三)–Work模式
由于在实际应用中,简单队列模型无法解决很多实际问题,而且生产者和消费者是一对一的关系.模型较为单一.故引入Work模式. 结构图 一个生产者.多个消费者. 一个消息只能被一个消费者获取. 测试实现: ...
- Introducing DataFrames in Apache Spark for Large Scale Data Science(中英双语)
文章标题 Introducing DataFrames in Apache Spark for Large Scale Data Science 一个用于大规模数据科学的API——DataFrame ...
- electron-vue开发爬坑指南
electron-vue开发遇到的爬坑过程,遇到了以下几种坑: 1:静态资源目录访问不了,想访问放在static目录下的静态资源,使用express指定静态目录访问不到,解决办法:使用electron ...