依賴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小語

注冊登錄方法思路應該有很多,這僅代表我自己的想法,當然有很多不足,也需大家一個幫助更改,歡迎評價.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM