首页 > 其他分享 >【AGC】通过AGC认证服务在Android平台实现华为账号登录功能

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

时间:2022-08-23 09:45:48浏览次数:97  
标签:服务 登录 AppGallery AGC 认证 华为 Connect 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、在导航选择“构建 > 认证”。如果是首次使用认证服务,请点击“立即开通”开通服务。

cke_555.png

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

cke_1187.png

cke_1760.png

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

cke_2971.png

5、添加到项目中。

cke_4188.png

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

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

界面设计

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

cke_9136.png

 

功能开发

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

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

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

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

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

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

PlainBashC++C#CSSDiffHTML/XMLJavaJavascriptMarkdownPHPPythonRubySQL
 AGConnectAuth.getInstance().signIn(this, AGConnectAuthCredential.HMS_Provider)
        .addOnSuccessListener(new OnSuccessListener<SignInResult>() {
            @Override
            public void onSuccess(SignInResult signInResult) {
                // onSuccess
                AGConnectUser user = signInResult.getUser();
                binding.uid.setText("Uid : " + user.getUid());
            }
        })
        .addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(Exception e) {
                // onFail
                binding.uid.setText("error : " + e.getMessage());
            }
        });

打包测试

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

cke_20219.png

恭喜您

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

参考文档

https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-auth-android-hwaccount-0000001053532656

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

标签:服务,登录,AppGallery,AGC,认证,华为,Connect,Android
From: https://www.cnblogs.com/developer-huawei/p/16615062.html

相关文章

  • 【AGC】典型问题FAQ 5
    ​ 1、如何配置重新生成的证书指纹。   问题描述:开发者在使用应用签名服务后,AGC会根据签名密钥重新生成证书指纹,可能不同于开发应用时本地生成的签名证书指纹。......
  • 【AGC】典型问题FAQ 4
    ​1、签名证书丢失如何找回。   问题描述:开发者APP1.0.1版本的签名证书已经丢失和注销;升级为1.0.2版本时,用新的签名证书,无法让已经安装的老客户顺畅升级导致无法通......
  • Android 桌面添加apk跳转固定网站
    桌面添加apk自动跳转网页两种方式实现首先想到使用Intent,但是返回会有跳转界面问题,无法自主退出然后使用WebView功能添加WebView1.简单实用WebView实现WebVi......
  • Android开发 debug调试framework
    前言Android系统开发有一个很麻烦的点就是想看代码调用情况的时候每次打log都要编译系统或者单编模块,费时费力特别影响效率。偶然间发现了framework也可以debug调试,所......
  • Android应用不显示图标的终极解决方法!
    我最近在用IntellijIdea2018.3.2(UltimateEdition)编写一个Androidapp,基本上是照着郭霖老师的《第一行代码》写的。但是!到最后安装的时候!手机上怎么也不显示应用图标!!!!!!!我......
  • Android开发 framework架包
    前言此博客讲解如何在Androidstudio中架入framework包。framework架包的最大目的肯定是想调用系统代码。但是请注意framework架的jar包是不参与apk编译的,只做Android......
  • Android开发常用知识
    1.知识点解析1.1dimen1.尺寸资源;2.在工程的res\layout\目录下创建一个test_dimen.xml布局文件。3.在该布局文件中添加一个TextView和一个Button。4.TextView的宽......
  • 【华为游戏服务】同一游戏同一个手机号的华为帐号登录返回的playerId不同
    问题描述我们华为渠道的一款游戏,接到现网某玩家反馈:手机和平板上登录同一个华为帐号,但是两边的游戏数据不同步。经过我们分析,发现该用户使用的是同一个手机号的华为帐号,登......
  • Unity 2017导入华为联机对战SDK打包报错“Found plugins with same names and archite
    背景公司业务需求把原始的单机游戏升级成联机对战型游戏,近期刚好看到华为平台联机对战SDK的文档发布。C#语言接入指导文档问题复现步骤SDK下载导入由于原始游戏在Unity......
  • android studio导入android系统源码 development/tools/idegen/idegen.sh执行报错
    转自:https://blog.csdn.net/liaosongmao1/article/details/124844528 1、makeidegenbuildcompletedsuccessfully(32seconds)2、执行development/tools/idegen/......