• 【AGC】通过AGC认证服务在Android平台实现华为账号登录功能


    简介

    AppGallery Connect认证服务提供了云侧服务和SDK,可以帮助开发者为应用快速构建安全可靠的用户认证系统,以便应用可以对用户进行身份认证。AppGallery Connect认证服务支持多种认证方式,并与其他Serverless服务紧密集成,开发者可以通过简单的规则定义来保护用户的数据安全。

    通过集成AppGallery Connect认证服务提供的Auth Service SDK,开发者可以对接包括华为帐号、微信、Facebook、Twitter在内的多种第三方用户认证系统,并将认证凭据上报给AppGallery Connect认证服务云侧。在下次登录时应用便可直接通过AppGallery Connect认证服务获取用户的个人基本信息和其他Serverless服务中的受安全规则保护的数据。

    AppGallery Connect认证服务可以极大减少开发者在用户认证系统构建和运维上的投入和成本。

    开通服务和集成SDK

    1、登录AppGallery Connect网站,点击“我的项目”。

    2、在导航选择“构建 > 认证”。如果是首次使用认证服务,请点击“立即开通”开通服务。

    3、点击需要启动的认证方式所在行的“启用”,本案例选择启用“华为帐号”,按要求填写。

    4、在项目设置---常规页签下的“应用”区域,下载agconnect-services.json配置文件。

    5、添加到项目中。

    6、集成认证服务和华为账号SDK。

    PlainBashC++C#CSSDiffHTML/XMLJavaJavascriptMarkdownPHPPythonRubySQL
    1. dependencies {
    2. implementation "com.huawei.agconnect:agconnect-auth:1.7.0.300"
    3. implementation "com.huawei.agconnect:agconnect-auth-huawei:1.7.0.300"
    4. }

    界面设计

    您可以在项目中创建一个布局页面,添加一个华为帐号登录按钮即可:

    功能开发

    1、应用集成AGC SDK时,如果使用了多进程处理机制,则需要在子进程中调用初始化方法。

    在Application的onCreate方法中添加初始化代码:

    PlainBashC++C#CSSDiffHTML/XMLJavaJavascriptMarkdownPHPPythonRubySQL
    1. if (AGConnectInstance.getInstance() == null) {
    2. AGConnectInstance.initialize(getApplicationContext());
    3. }

    2、对应的Activity的OnActivityResult中调用AGConnectApi.applicationLifecycle生命周期接口回调给统一登录SDK。

    PlainBashC++C#CSSDiffHTML/XMLJavaJavascriptMarkdownPHPPythonRubySQL
    1. @Override
    2. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    3. super.onActivityResult(requestCode, resultCode, data);
    4. AGConnectApi.getInstance().activityLifecycle().onActivityResult(requestCode, resultCode, data);
    5. }

    3、在点击登录的方法中,初始化AGCAuth实例,调用signIn方法进行华为账号登录。

    PlainBashC++C#CSSDiffHTML/XMLJavaJavascriptMarkdownPHPPythonRubySQL

    1. AGConnectAuth.getInstance().signIn(this, AGConnectAuthCredential.HMS_Provider)
    2. .addOnSuccessListener(new OnSuccessListener() {
    3. @Override
    4. public void onSuccess(SignInResult signInResult) {
    5. // onSuccess
    6. AGConnectUser user = signInResult.getUser();
    7. binding.uid.setText("Uid : " + user.getUid());
    8. }
    9. })
    10. .addOnFailureListener(new OnFailureListener() {
    11. @Override
    12. public void onFailure(Exception e) {
    13. // onFail
    14. binding.uid.setText("error : " + e.getMessage());
    15. }
    16. });

    打包测试

    1、在编译器上点击运行按钮,在手机或模拟器上运行应用。确保可以正常访问网络,点击“华为账号登录”按钮。此时会拉起华为账号信息,点击确认后,登录成功,按钮下方显示登录用户的uid。

    恭喜您

    您已经成功地构建了您的第一个集成AGC认证服务的应用程序,并学到了如何使用AppGallery Connect认证服务进行华为帐号登录。

    参考文档

    文档中心

    欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/topic/0204950108379300264?fid=0101271690375130218?ha_source=zzh

  • 相关阅读:
    Git忽略文件.gitignore的使用
    docker部署Jenkins(Jenkins+Gitlab+Maven实现CI/CD)
    Python GDAL+numpy遥感图像处理过程中背景像元处理方法
    XTU-OJ 1215-A+B V
    ExecutorService接口线程池
    计算机毕业设计Java毕业设计流程管理(源码+系统+mysql数据库+lw文档)
    NTC温敏电阻温度计算
    Go/Golang语言学习实践[回顾]教程04--安装一个Go语言的集成开发环境
    表单控件绑定:checkbox表单绑定v-model
    数学分析:傅里叶级数
  • 原文地址:https://blog.csdn.net/weixin_44708240/article/details/126261318