iOS独立开发者使用Bmob第三方后台服务之用户管理

栏目: IOS · 发布时间: 5年前

内容简介:BmobUser除了从BmobObject继承的属性外,还有几个特定的属性:应用很常见的一个功能就是,注册用户,使用BmobUser注册用户也不复杂,如下的例子所示:

iOS独立开发者使用Bmob第三方后台服务之用户管理

BmobUser除了从BmobObject继承的属性外,还有几个特定的属性:

  • username: 用户的用户名(必需)。
  • password: 用户的密码(必需)。
  • email: 用户的电子邮件地址(可选)。

    BmobUser自动处理用户账户管理所需的功能。

    -(void)setUsername:(NSString *)username;//用户名,必需
    -(void)setPassword:(NSString*)password;//密码,必需
    -(void)setEmail:(NSString *)email;//设置邮箱
    -(void)setObject:(id)obj forKey:(id)key;//设置某个属性的值
    -(id)objectForKey:(id)key;//得到某个属性的值
    

二、注册

应用很常见的一个功能就是,注册用户,使用BmobUser注册用户也不复杂,如下的例子所示:

BmobUser *bUser = [[BmobUser alloc] init];
   [bUser setUsername:self.nameTextField.text];
   [bUser setPassword:self.passwordTextField.text];
   [bUser signUpInBackgroundWithBlock:^ (BOOL isSuccessful, NSError *error){
       if (isSuccessful){
           NSLog(@"Sign up successfully");
           NSString *result = [NSString stringWithFormat:@"注册成功\n用户名:%@\n密码:%@\n去试试登录吧",self.nameTextField.text,self.passwordTextField.text];
           [self showResultInfo:result];
       } else {
           NSLog(@"%@",error);
           [self showResultInfo:@"注册失败,查看控制台信息"];

       }
   }];

iOS独立开发者使用Bmob第三方后台服务之用户管理

注意点:

  • 有些时候你可能需要在用户注册时发送一封邮件,以确认用户邮箱的真实性。这时,你只需要登录自己的应用管理后台,在应用设置->邮件设置(下图)中把“邮箱验证”功能打开,Bmob云后端就会在用户注册时自动发动一封验证给用户。

    iOS独立开发者使用Bmob第三方后台服务之用户管理
  • username字段是大小写敏感的字段,如果你希望应用的用户名不区分大小写,请在注册和登录时进行大小写的统一转换。

    三、登录

    当用户注册成功后,需要让他们以后能够登录到他们的账户使用应用。要做到这点可以使用

    方法一

    [BmobUser loginWithUsernameInBackground:self.nameTextField.text password:self.passwordTextField.text];
    

    方法二

[BmobUser loginWithUsernameInBackground:self.nameTextField.text password:self.passwordTextField.text block:^(BmobUser *user, NSError *error) {
    if (user) {
        NSString *result = [NSString stringWithFormat:@"登录成功\n用户名:%@\n密码:%@\n去试试获取当前用户吧",user.username,user.password];
                    [self showResultInfo:result];
    }else{
        NSLog(@"%@",error);
          [self showResultInfo:@"登录失败,查看可控制台消息"];
    }
}];

可以看到Bmob里面提供了很多的方法,根据需要调用

iOS独立开发者使用Bmob第三方后台服务之用户管理

iOS独立开发者使用Bmob第三方后台服务之用户管理

四、获取当前用户

每次你登录成功,都会在本地磁盘中有一个缓存的用户对象作为当前用户,可以获取这个缓存的用户对象来进行登录:

BmobUser *user = [BmobUser currentUser];
   if (user) {
       //进行操作
       NSString *result = [NSString stringWithFormat:@"登录成功\n用户名:%@\n密码:%@\n去试试更新用户吧",user.username,user.password];
       [self showResultInfo:result];
   }else{
       //对象为空时,可打开用户注册界面
       [self showResultInfo:@"当前没有用户"];
   }

当然,你也可以用如下的方法清除缓存用户对象:

[BmobUser logout];

iOS独立开发者使用Bmob第三方后台服务之用户管理

五、更新用户

当用户登录成功后,在本地有个缓存的用户对象,如果开发者希望更改当前用户的某个属性可按如下代码操作:

BmobUser *bUser = [BmobUser currentUser];
   
   if (bUser) {
       [bUser setObject:self.nameTextField.text forKey:@"username"];
       [bUser updateInBackgroundWithResultBlock:^(BOOL isSuccessful, NSError *error) {
           if (isSuccessful) {
               [self showResultInfo:@"更新用户成功,去查看当前用户信息吧"];
           }else{
               NSLog(@"error %@",[error description]);
               [self showResultInfo:@"更新用户失败,控制台查看信息"];
           }
       }];
   }else{
        [self showResultInfo:@"当前未登录"];
   }

一般来说,使用当前用户对象来进行资料更新可能会遇到一个问题。如果当前用户上次登录的时间距离当前时间过长,存放在本地的Token就有可能会过期,导致用户更新资料失败,这是需要重新登录,登录成功后才能更新资料。

在更新用户信息时,如果用户邮箱有变更并且在管理后台打开了邮箱验证选项的话,Bmob云后端同样会自动发动一封邮件验证信息给用户。

iOS独立开发者使用Bmob第三方后台服务之用户管理

六、查询用户

查询用户和查询普通对象一样,只需指定BmobUser类即可,如下:

- C
BmobQuery *query = [BmobUser query];
   [query whereKey:@"username" equalTo:self.nameTextField.text];
   [query findObjectsInBackgroundWithBlock:^(NSArray *array, NSError *error) {
       if (error) {
           NSLog(@"%@",error);
           [self showResultInfo:@"查询出错,查看控制台信息"];

           
       }else{
           if (array.count>0) {
               for (BmobUser *user in array) { //  demo中只有一个用户,所以把显示结果的放在循环内了
                   NSLog(@"objectid %@",user.objectId);
                   NSString *result = [NSString stringWithFormat:@"查询成功\n用户名:%@\n用户id:%@",user.username,user.objectId];
                   [self showResultInfo:result];
                   
               }
           }else{
                [self showResultInfo:@"没有查询到结果,请修改信息后查询"];
           }
           
       }
      
   }];

在Bmob后台查看用户表

iOS独立开发者使用Bmob第三方后台服务之用户管理

七、修改密码

使用旧密码来重置新密码的接口,示例如下:

修改

BmobUser *user = [BmobUser currentUser];
   [user updateCurrentUserPasswordWithOldPassword:self.nameTextField.text newPassword:self.passwordTextField.text block:^(BOOL isSuccessful, NSError *error) {
       if (isSuccessful) {
              [self showResultWithLoginInfo:user.username];
         
       } else {
           NSLog(@"change password error:%@",error);
            [self showResultInfo:@"修改失败,查看可控制台消息"];
       }
   }];

修改成功之后登录

//用新密码登录
      [BmobUser loginInbackgroundWithAccount:result andPassword:self.passwordTextField.text block:^(BmobUser *user, NSError *error) {
          if (error) {
              NSLog(@"login error:%@",error);
              [self showResultInfo:@"登录失败,查看可控制台消息"];
              
          } else {
              
              
              NSLog(@"user:%@",user);
              NSString *result = [NSString stringWithFormat:@"登录成功\n用户名:%@\n用户ID:%@\n",user.username,user.objectId];
              [self showResultInfo:result];
          }
      }];

iOS独立开发者使用Bmob第三方后台服务之用户管理

八、邮箱找回(修改)密码

前提是在注册操作的时候有添加过邮箱

一旦你引入了一个密码系统,那么肯定会有用户忘记密码的情况。对于这种情况,我们提供了一种方法,让用户安全地重置起密码。

重置密码的流程很简单,开发者只需要求用户输入注册的电子邮件地址即可

[BmobUser requestPasswordResetInBackgroundWithEmail:self.nameTextField.text block:^(BOOL isSuccessful, NSError *error) {
      if (isSuccessful) {
          [self showResultInfo:@"发送成功,请去邮箱内查看邮件"];
      }else{
          NSLog(@"%@",error);
          [self showResultInfo:@"发送失败,请查看控制台信息"];
      }
      
  }];

以下为未开启邮箱验证和注册时未绑定邮箱的
iOS独立开发者使用Bmob第三方后台服务之用户管理

密码重置流程如下:

  1. 用户输入他们的电子邮件,请求重置自己的密码。
  2. Bmob向他们的邮箱发送一封包含特殊的密码重置连接的电子邮件。
  3. 用户根据向导点击重置密码连接,打开一个特殊的Bmob页面,根据提示,他们可以输入一个新的密码。
  4. 用户的密码已被重置为新输入的密码。

九、总结

注意点:

  1. 需要在Bmob后台开启邮箱认证
  2. Bmob后台User表里可添加字段来完善用户信息
  3. 通过邮箱操作密码等信息的需要在注册是要求用户验证邮箱,否则操作失败

Bmob接入具体操作可查看上一篇文章

iOS独立开发者使用Bmob第三方后台服务初探

本文同步至个人博客

代码传送门 ,欢迎star,感兴趣的可以留言一起探讨。

搜索公众号 JacerooChu 或扫描下方二维码一起讨论和获取更多信息。

iOS独立开发者使用Bmob第三方后台服务之用户管理

iOS独立开发者使用Bmob第三方后台服务之用户管理


以上所述就是小编给大家介绍的《iOS独立开发者使用Bmob第三方后台服务之用户管理》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

七周七语言

七周七语言

Bruce A.Tate / 巨成、戴玮、白明 / 人民邮电出版社 / 2012-5-8 / 59.00元

内容简介: 从计算机发展史早期的Cobol、Fortran到后来的C、Java,编程语言的家族不断壮大。除了这些广为人知的语言外,还涌现了Erlang、Ruby等后起之秀,它们虽被喻为小众语言,但因其独特性也吸引了为数不少的追随者。 Bruce A. Tate是软件行业的一名老兵,他有一个宏伟目标:用一本书的篇幅切中要害地探索七种不同的语言。本书就是他的成果。书中介绍了Ruby、Io、......一起来看看 《七周七语言》 这本书的介绍吧!

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具