前言
實現登錄注冊的基本功能,沒有添加手機驗證和郵箱驗證的功能,有相應的方法,如果需要,可以自己加上其相應的方法
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小語
注冊登錄方法思路應該有很多,這僅代表我自己的想法,當然有很多不足,也需大家一個幫助更改,歡迎評價.