Bmob用户功能详解(一)

在开发应用程序的时候,不少状况下咱们须要进行用户注册、登陆、修改密码等等一系列和用户相关的功能。那么要实现这些功能比较广泛的作法是,有一个服务器端,包括数据库设计、服务器部署、业务逻辑接口编写、服务端与客户端的联调等等许多繁琐的工做。html

那么若是做为一个普通的我的开发者有没有比较简单的方法来快速实现这些功能呢?答案固然是能够的啦 ~下面咱们就来看看怎么使用Bmob提供的服务来很是方便的实现这些功能。java

在讲解前须要注意的一些地方,这里我只讲怎么使用BmobAndroidSDK实现用户登陆、注册等功能操做,至于怎么在本身的项目中嵌入BmobAndroidSDK,能够去Bmob官方文档的快速入门中按照说明自行完成。android

注册

首先咱们建立一个简单的注册界面,主要包含三个界面元素,两个输入框(用户名、密码),一个按钮(注册)。界面以下:数据库


在SignUpActivity中的代码以下:后端

/**
 * 注册界面
 */public class SignUpActivity extends AppCompatActivity implements View.OnClickListener{

    EditText etUsername,etPassword;
    Button btnSignUp;    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {        
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sign_up);        
        
        // 获取界面中的相关View
        etUsername = (EditText) findViewById(R.id.editUserName);
        etPassword = (EditText) findViewById(R.id.editPassword);
        btnSignUp = (Button) findViewById(R.id.btnSignUp);        
        // 设置登陆按钮点击事件
        btnSignUp.setOnClickListener(this);
    }  
    
      @Override
    public void onClick(View v) {        
        // 获取用户输入的用户名和密码
        String username = etUsername.getText().toString();
        String password = etPassword.getText().toString();        
        
        // 非空验证
        if(TextUtils.isEmpty(username) || TextUtils.isEmpty(password)){
            Toast.makeText(this, "用户名或密码不能为空", Toast.LENGTH_SHORT).show();            
            return;
        }        
        
        // 使用BmobSDK提供的注册功能
        BmobUser user = new BmobUser();
        user.setUsername(username);
        user.setPassword(password);
        user.signUp(this, new SaveListener() {            
            @Override
            public void onSuccess() {
                Toast.makeText(SignUpActivity.this, "注册成功", Toast.LENGTH_SHORT).show();
            }            
            
            @Override
            public void onFailure(int i, String s) {
                Toast.makeText(SignUpActivity.this, "注册失败", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

注册的代码很简单,首先将用户输入的用户名和密码set到user对象中,而后调用signUp方法进行注册。在SaveListener回调监听 中处理服务器返回的注册结果,onSuccess方法表示注册成功,onFailure方法表示注册失败,而且参数s表示失败缘由。服务器

这是在客户端的注册功能实现,事实上在Bmob后台的User表中会保存用户的注册信息,举例,若是咱们注册一个用户,用户名为稻草人,密码为 123456,当SaveListener回调触发了onSuccess方法后,能够在Bmob后台User表中看到一条用户信息存在,以下:网络



登陆

完成了注册后,接下来讲说用户登陆。首先来设计一个简单的用户登陆界面以下:数据库设计

而后在LoginActivity中实现登陆操做,代码以下:ide

/**
 * 登陆界面
 */public class LoginActivity extends AppCompatActivity implements View.OnClickListener{

    EditText etUsername,etPassword;
    Button btnLogin;    
    @Override
    protected void onCreate(Bundle savedInstanceState) {        
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);        
        
        // 获取界面中的相关View
        etUsername = (EditText) findViewById(R.id.editUserName);
        etPassword = (EditText) findViewById(R.id.editPassword);
        btnLogin = (Button) findViewById(R.id.btnLogin);        
        // 设置登陆按钮点击事件
        btnLogin.setOnClickListener(this);
    }    
    
    @Override
    public void onClick(View v) {        
        // 获取用户输入的用户名和密码
        String username = etUsername.getText().toString();
        String password = etPassword.getText().toString();        
        
        // 非空验证
        if(TextUtils.isEmpty(username) || TextUtils.isEmpty(password)){
            Toast.makeText(this, "用户名或密码不能为空", Toast.LENGTH_SHORT).show();            
            return;
        }        
        
        // 使用BmobSDK提供的登陆功能
        BmobUser user = new BmobUser();
        user.setUsername(username);
        user.setPassword(password);
        user.login(this, new SaveListener() {            
            @Override
            public void onSuccess() {
                Toast.makeText(LoginActivity.this, "登陆成功", Toast.LENGTH_SHORT).show();
            }            
            
            @Override
            public void onFailure(int i, String s) {
                Toast.makeText(LoginActivity.this, "登陆失败", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

能够看出和注册界面的代码差很少相同,区别只在于使用BmobSDK调用的方法不一样,在这里是调用的BmobUser对象中的login方法来进行登陆操做。this

其实从以上的注册、登陆界面中的代码能够看出,使用BmobSDK来实现用户的注册、登陆操做是很是简单的,咱们不须要关心任何后端的事情,以及在客户端可能须要关心的与服务器接口对应的网络请求操做等等。


总结

以上讲了使用BmobSDK中提供的BmobUser对象来实现注册、登陆功能。这也是BmobSDK中用户模块最基本的实现,可是在实际的业务开发中可能还涉及到其余相对比较复杂的业务实现,好比:

  • 用户资料不单单只是包含用户名和密码,还会有用户头像、昵称、性别、年龄等等其余属性。

  • 使用手机号做为用户名注册时须要经过短信验证码验证。

  • 使用邮箱做为用户名注册时须要发送激活邮件给用户,用户点击激活连接来激活帐号。

  • 更新用户信息

  • 修改密码

  • 退出登陆

  • ……

后面我会继续深刻的讲解怎么使用BmobSDK来实现这些比较复杂的业务功能,欢迎你们关注。


此文转载自:稻草人博客

相关文章
相关标签/搜索