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來實現這些比較複雜的業務功能,歡迎你們關注。


此文轉載自:稻草人博客

相關文章
相關標籤/搜索