依赖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小语

注册登录方法思路应该有很多,这仅代表我自己的想法,当然有很多不足,也需大家一个帮助更改,欢迎评价.

原文地址:https://www.cnblogs.com/miaomiaocat/p/5034407.html