title: 手机登录

本篇文档介绍在 Wilddog Auth 中如何使用手机号和密码对用户进行身份认证。

前期准备

  1. 在控制面板中创建应用。请参考 控制面板-创建应用
  2. 在控制面板 身份认证—登录方式 中打开手机号码登录方式。

创建用户

用手机号密码创建一个新用户,需完成以下步骤:

1.安装 Wilddog Auth SDK:

  1. compile 'com.wilddog.client:wilddog-auth-android:2.0.5'

2.初始化 Wilddog Auth 实例:

  1. WilddogOptions options = new WilddogOptions.Builder().setSyncUrl("https://<wilddog appId>.wilddogio.com").build();
  2. WilddogApp.initializeApp(this, options);
  3. mAuth = WilddogAuth.getInstance();

3.使用 createUserWithPhoneAndPassword(phone,password) 方法创建新用户:

  1. String phone = "18888888888";
  2. String password = "password123";
  3. mAuth.createUserWithPhoneAndPassword(phone, password)
  4. .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
  5. @Override
  6. public void onComplete( Task<AuthResult> task) {
  7. if (task.isSuccessful()) {
  8. // 获取用户
  9. WilddogUser user = task.getResult().getWilddogUser();
  10. Log.d("result",user.toString());
  11. }
  12. else{
  13. // 错误处理
  14. Log.d("result",task.getException().toString());
  15. }
  16. }
  17. });

注意:

如果新用户创建成功,默认会处于登录状态,并且你可以在回调方法中获取登录用户。

登录用户

1.安装 Wilddog Auth SDK:

  1. compile 'com.wilddog.client:wilddog-auth-android:2.0.5'

2.初始化 Wilddog Auth 实例:

  1. WilddogOptions options = new WilddogOptions.Builder().setSyncUrl("https://<wilddog appId>.wilddogio.com").build();
  2. WilddogApp.initializeApp(this, options);
  3. mAuth = WilddogAuth.getInstance();

3.将该用户的手机号码和密码传递到 signInWithPhoneAndPassword(phone,password),即可在你应用中登录此用户:

  1. String phone = "18888888888";
  2. String password = "password123";
  3. mAuth.signInWithPhoneAndPassword(phone, password)
  4. .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
  5. @Override
  6. public void onComplete( Task<AuthResult> task) {
  7. Log.d(TAG, "signInWithPhone:onComplete:" + task.isSuccessful());
  8. if (!task.isSuccessful()) {
  9. Log.e(TAG, "signInWithPhone", task.getException());
  10. Toast.makeText(PhonePasswordActivity.this, "Authentication failed.",
  11. Toast.LENGTH_SHORT).show();
  12. }
  13. }
  14. });

注意:

如果用户成功登录,你可以在回调方法中获取登录用户。

验证用户手机号

1.发送验证用户的手机验证码:

  1. WilddogUser user = mAuth.getCurrentUser();
  2. user.sendPhoneVerification()
  3. .addOnCompleteListener(this, new OnCompleteListener<Void>() {
  4. @Override
  5. public void onComplete( Task<Void> task) {
  6. Log.d(TAG, "sendPhoneVerification:onComplete:" + task.isSuccessful());
  7. if (!task.isSuccessful()) {
  8. Log.e(TAG, "sendPhoneVerification", task.getException());
  9. Toast.makeText(PhonePasswordActivity.this, "Authentication failed.",
  10. Toast.LENGTH_SHORT).show();
  11. }
  12. }
  13. });

2.确认验证用户手机验证码:

  1. String code = "090909";
  2. WilddogUser user = mAuth.getCurrentUser();
  3. user.verifiyPhone(code)
  4. .addOnCompleteListener(this, new OnCompleteListener<Void>() {
  5. @Override
  6. public void onComplete( Task<Void> task) {
  7. Log.d(TAG, "verifiyPhone:onComplete:" + task.isSuccessful());
  8. if (!task.isSuccessful()) {
  9. Log.e(TAG, "verifiyPhone", task.getException());
  10. Toast.makeText(PhonePasswordActivity.this, "Authentication failed.",
  11. Toast.LENGTH_SHORT).show();
  12. }
  13. }
  14. });

退出登录

signOut() 方法用于用户退出登录:

  1. mauth.signOut();

更多使用

  • 通过 WilddogAuth.getInstance().getCurrentUser() 获取当前用户并管理用户。详情请参考 用户管理
  • Wilddog Auth 可以将你的应用与 Wilddog Sync 无缝集成:使用手机登录后,Wilddog Auth 将给用户生成 Wilddog ID。Wilddog ID 结合 规则表达式,可以控制 Wilddog Sync 的用户访问权限。