依赖lean cloud的注册与登录
前言
实现登录注册的基本功能,没有添加手机验证和邮箱验证的功能,有相应的方法,如果需要,可以自己加上其相应的方法
github的网址:
效果图:




正文
1.导入leancloud相应的第三方,这个等我再写一个博客告诉大家怎么用,leancloud的官方文档也都有写,官方网址:https://leancloud.cn/?
2.在你注册的leancloud里创建一个应用,那到appkey写到Appdelegate.m中,在这个应该中你就可以看见注册你的app的用户信息了.
3.当你布置好页面以后,我的习惯先写注册功能,先创建一个用户AVUser
//1.创建一个用户
AVUser *user = [AVUser user];
user.username = userName;
user.password = passWord; //2.注册的方法
[user signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
NSLog(@"lls");
if (succeeded) { //3.如果注册成功就直接登陆 NSLog(@"注册成功"); }else{ NSLog(@"注册失败");
} }];
4.注册成功的话,要调用登录的方法
//1.登陆的方法
[AVUser logInWithUsernameInBackground:userName password:passWord block:^(AVUser *user, NSError *error) { //有用户
if (user != nil) { //2.登陆成功,去根视图
AppDelegate *app = [UIApplication sharedApplication].delegate; RootViewController *rootVC = [[RootViewController alloc] init];
UINavigationController *rootNC = [[UINavigationController alloc] initWithRootViewController:rootVC]; app.window.rootViewController = rootNC; }else{ } }];
5.基本功能完成了,开始解决问题
1)不能每次都让你的用户登录,如果之前登录了,再次启动时不用用户再次登录,写一个判断方法,之前用block回调通知是否登录了,
isLoginBlock(YES);
isLoginBlock(NO);
2)知道是否登录后,需要知道用户名和密码和用户id让他自动登录,所以之前应该保证到本地数据
//把信息存在本地
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//存放
[defaults setObject:user.username forKey:@"userName"];
[defaults setObject:user.objectId forKey:@"objectId"];
[defaults setObject:user.password forKey:@"password"]; [defaults setObject:@"YES" forKey:@"isLogin"];
3)如果block的结果是YES,就当本地取数据,之后更换你的根视图
//在本地取
NSUserDefaults *userDegaults = [NSUserDefaults standardUserDefaults];
//就是之前登陆了
if ([[userDegaults objectForKey:@"isLogin"] isEqualToString:@"YES"]) { [UserManager shareUser].userName = [userDegaults objectForKey:@"userName"];
[UserManager shareUser].passWord = [userDegaults objectForKey:@"password"];
[UserManager shareUser].userId = [userDegaults objectForKey:@"objectId"]; RootViewController *rootVC = [[RootViewController alloc] init];
self.window.rootViewController = rootVC;
4)如果block的结果是NO,根视图就是登录页面
miaomiaocat小语
注册登录方法思路应该有很多,这仅代表我自己的想法,当然有很多不足,也需大家一个帮助更改,欢迎评价.
依赖lean cloud的注册与登录的更多相关文章
- Spring Cloud Eureka 注册安全一定要做到位!
/eureka/ 参考配置如下: defaultZone: http://javastack:javastack@eureka1:8761/eureka/, http://javastack:java ...
- Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
概述 上一篇我们介绍了如何使用vue resource处理HTTP请求,结合服务端的REST API,就能够很容易地构建一个增删查改应用.这个应用始终遗留了一个问题,Web App在访问REST AP ...
- Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!
Spring Cloud 的注册中心可以由 Eureka.Consul.Zookeeper.ETCD 等来实现,这里推荐使用 Spring Cloud Eureka 来实现注册中心,它基于 Netfl ...
- Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
转自:https://www.cnblogs.com/keepfool/p/5665953.html 概述 上一篇我们介绍了如何使用vue resource处理HTTP请求,结合服务端的REST AP ...
- spring cloud 服务注册中心eureka高可用集群搭建
spring cloud 服务注册中心eureka高可用集群搭建 一,准备工作 eureka可以类比zookeeper,本文用三台机器搭建集群,也就是说要启动三个eureka注册中心 1 本文三台eu ...
- Net Core Identity 身份验证:注册、登录和注销 (简单示例)
一.前言 一般我们自己的系统都会用自己设置的一套身份验证授权的代码,这次用net core的identity来完成简单的注册.登录和注销. 二.数据库 首先就是创建上下文,我这里简单的建了Users和 ...
- Spring Cloud Gateway注册到服务器中心(Consul)
Spring Cloud Gateway注册到服务器中心(Consul) 准备环境 启动Consul(./consul agent -dev)作为服务中心,默认是8500端口,然后启动spring-c ...
- 一 注册功能&登录功能,权限拦截
注册功能: 前端JSP:提供表单注册信息以及访问路径,发送请求到Strus2. Struts2 : 通过模型驱动接收并封装User对象,Spring依赖注入(无参构造+setter方法)获取业务层Us ...
- Bootstrap实战 - 注册和登录
一.介绍 注册和登录在社交和商业网站中是必不可少的一个部分. 二.知识点 2.1 标签页 2.1.1 基础标签页 标签页的使用与导航栏类似,同时都依赖于基础样式 nav,不同的是附加样式变成了 nav ...
随机推荐
- hibernate---一级缓存, 二级缓存, 查询缓存
缓存: 内存开辟一块空间,把本来存在硬盘的东西放在内存里, 以后从内存读取. 一级缓存: session级别的缓存, session.load 二级缓存: 总的缓存.
- oracle查看表空间物理文件的名称,路径及大小
select tablespace_name, file_id,file_name,round(bytes/(1024*1024),0) total_space from dba_data_files ...
- (简单) HDU 1698 Just a Hook , 线段树+区间更新。
Description: In the game of DotA, Pudge’s meat hook is actually the most horrible thing for most of ...
- LPC2478内存布局以及启动方式
LPC2478 是NXP公司推出的一款基于APR7TDMI-S的工控型MCU,内置RAM与flash,同时提供外部扩展flash和ram接口,拥有LCD控制器,其内存布局如下所示 其中Flash高达5 ...
- centos 上网问题
前言:由于Linux下很多软件安装必须网络环境下进行,因此,对于如何在VMware下进行上网,我折腾了至少三天,今天上午,也即五一劳动节,终于搜到一遍技术文章,经过自己实践,VMware下Linux的 ...
- selenium Chromediver
Here we use wget to fetch the version number of the latest release, then plug the version into anoth ...
- c++ split()实现
在c++中,没有java与python中定义的split()功能的函数,于是自己实现之. 情况1,适用范围,分隔符为字符.思路,记录分隔符的位置,判断需要截取的字符串的下标范围. vector< ...
- perl访问数组中变量
数组一个是存储标量值的无序列表变量. 数组变量以 @ 开头.访问数组元素使用 $ + 变量名称 + [索引值] 格式来读取,实例如下: #!/usr/bin/perl @names = (" ...
- robotium从入门到放弃 三 基于apk的自动化测试
1.apk重签名 在做基于APK的自动化测试的过程中,需要确保的一点是,被测试的APK必须跟测试项目具有相同的签名,那怎么做才能确保两者拥有相同的签名呢?下面将给出具体的实现方法. 首先将被测 ...
- MySQL批量导出以某数字或字母开头的表
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://suifu.blog.51cto.com/9167728/1852178 情景:我 ...