基于华为AGC认证服务快速构建社交应用登录系统

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:Mayism网络

小提示:您能找到这篇{基于华为AGC认证服务快速构建社交应用登录系统}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的基于华为AGC认证服务快速构建社交应用登录系统内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

 众所周知,一般想要开发一个社交应用需要客户端服务器等很多模块配合才能够实现。尤其是登录系统,想要构建一个安全高效的登录需要大量的开发维护工作。今天就教大家如何不需要搭建任何服务器就可以完成一个简单的社交应用登录系统开发。

我们的登录认证系统使用的是华为AppGallery Connect认证服务,首先简单介绍一下AppGallery Connect,AppGallery Connect(简称AGC),致力于为开发者提供应用创意、开发、分发、运营、分析全生命周期服务,构建全场景智慧化的应用生态。目前,AGConnect已经开通了87项服务。

华为AGC认证服务就提供了一套完整的手机号和邮箱地址注册登录系统。

首先,对于新的用户,认证服务提供了账号的注册系统。首先看下我们的应用注册界面:

手机号注册与邮箱注册的具体流程大致相同,以手机号码注册流程为例:

认证服务SDK提供了内置的验证码发送功能,应用不需要自己去找通讯供应商开通发送验证码的服务,非常方便。邮箱认证也提供了发送邮箱验证码的功能,只需要调用AGConnectAuth.requestVerifyCode传入用户信息就可以请求验证码。代码示例如下:

String countryCode = "86";

 VerifyCodeSettings settings = VerifyCodeSettings.newBuilder()

         .action(VerifyCodeSettings.ACTION_REGISTER_LOGIN)

         .sendInterval(30) //shortest send interval ,30-120s

         .locale(Loc半永久定妆宣传海报ale.SIMPLIFIED_CHINESE) //optional,must contain country and language eg:zh_CN

         .build();

 if (notEmptyString(countryCode) && notEmptyString(accountNumber)) {

     Task<VerifyCodeResult> task = PhoneAuthProvider.requestVerifyCode(countryCode, accountNumber, settings);

     task.addOnSuccessListener(TaskExecutors.uiThread(), verifyCodeResult ->

             Toast.makeText(RegisterActivity.this, "verify code has been sent.", Toast.LENGTH_SHORT).show()

     ).addOnFailureListener(TaskExecutors.uiThread(), e -> {

         Toast.makeText(RegisterActivity.this, "Failed. "+e.getMessage(), Toast.LENGTH_SHORT).show();

         Log.e(TAG, "requestVerifyCode fail:" + e.getMessage());

     });

 } else {

     AGConnectCrash.getInstance().testIt(RegisterActivity.this);

 }

在我们的注册页面中,也可以看到一个输入密码的输入框,这里SDK又提供了一个很便捷的功能。认证服务给用户提供了验证码和密码两种登录方式。用户在注册的时候可以选择是否给自己的账号设置一个密码,如果密码这里选择了设置,那后续登录的时候就可以使用密码的方式来登录,如果没有在注册时设置,则可以通过验证码的方式来登录。注册成功后,SDK会自动帮用户进行登录,无需再跳转回登录界面重新登录。我们开发的社交登录系统注册的时候设置了密码,相关示例代码如下:



PhoneUser phoneUser = new PhoneUser.Builder()

         .setCountryCode(countryCode)

         .setPhoneNumber(accountNumber)

         .setVerifyCode(verifyCode)

         .setPassword(password)

         .build();

 AGConnectAuth.getInstance().createUser(phon直播室推广软文eUser).addOnSuccessListener(signInResult -> {

     String phoneNumber = signInResult.getUser().getPhone();

     String uid = signInResult.getUser().getUid();

     Bundle data = new Bundle();

     data.putString("phone", phoneNumber);

     data.putString("uid", uid);

     Intent intent = new Intent(RegisterActivity.this, ImageListActivity.class);

     intent.putExtras(data);

     startActivity(intent);

     finish();

 }).addOnFailureListener(e -> {

     Log.e(TAG, "register error, " + e);

     ToastUtils.showToast(RegisterActivity.this, "Register failed. "+e.getMessage());

 });

对于已经注册的用户,我们同样提供了使用手机号或邮箱登录的能力。下面我们的登录界面:

由于我们的应用只设置了使用密码登录,所以在刚刚的注册环节也必须是输入密码。代码中,只需要调用signin接口将用户相应的数据传入就可以进行登录了。登录代码示例如下:

String countryCode = "86";

 AGConnectAuthCredential credential = PhoneAuthProvider.credentialWithVerifyCode(

         countryCode,

         phoneAccount,

         photoPassword,

         null ); // password, can be null

 AGConnectAuth.getInstance().signIn(credential).addOnSuccessListener(signInResult -> {

     String phoneNumber = signInResult.getUser().getPhone();

     String uid = signInResult.getUser().getUid();

     Bundle data = new Bundle();

     data.putString("account", this.getString(R.string.phone_user)+phoneNumber.substring(11, 15));

     data.putString("uid", uid);

     ToastUtils.showToast(LoginActivity.this, "Login Success");

     Intent intent = new Intent(LoginActivity.this, ImageListActivity.class);

     intent.putExtras(data);

     startActivity(intent);

     finish();

 }).addOnFailureListener(e -> {

     Log.e(TAG, "Login failed: " + e.getMessage());

     ToastUtils.showToast(LoginActivity.this, "Account Error,Confirm and try again");

 });

登录成功后认证服务会返回一个当前用户的唯一ID,开发者可以根据这个ID来区分不同的用户。可以看到我们的登录界面还有一个匿名登录的选项。这个也是认证服务提供的。认证服务提供了用户的匿名模式,用户可以不注册不登录,通过匿名的方式来体验应用的功能,通俗点说就是游客模式,这样可以给用户一个试用的机会,提高应用转化率,有兴趣的可以参考文档实现。

登录成功后,我们来到了图片展示页面:

这个页面分为两个部分,第一部分为标题部分,分为用户的名称以及三个操作的按钮,分别为添加图片,刷新与退出登录。用户的名称是通过认证服务登录成功以后的返回信息里获取的。退出登录则用到了认证服务的退出登录功能,退出后界面会就返回到之前的登录界面,退出登录的功能实现就不赘述了,调用signout接口即可。

而页面下半部分的图片展示则使用到了AGC的云存储云数据库等功能,这些功能也是基于认证服务来实现的。认证服务可以为云存储与云数据库提供凭证,例如云数据库服务需要认证服务的权限认证才可以进行增删改等操作。具体这些服务是怎么应用到我们的App中的,我将在以后的文章中为大家介绍。



总结:

使用华为AGC认证服务免除了自己搭建服务器进行登录认证的烦恼,仅通过集成认证服务SDK即可实现包括手机、邮箱在内多种认证方式的端到端注册登录流程,整个开发流程半天到一天即可搞定,同时也比自有认证系统更加安全。

基于华为AGC认证服务快速构建社交应用登录系统

上一篇:YouTube推广须知的八个步骤,助你出海
下一篇:如何判断快应用是否是运行在华为手机上


版权声明:以上主题为“基于华为AGC认证服务快速构建社交应用登录系统"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    基于华为AGC认证服务快速构建社交应用登录系统
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“基于华为AGC认证服务快速构建社交应用登录系统”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通基于华为AGC认证服务快速构建社交应用登录系统的相关事宜。

关键词:基于华为AGC认证服务快速

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号