【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、在导航选择“构建 > 认证”。如果是首次使用认证服务,请点击“立即开通”开通服务。

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

posted @ 2022-08-23 09:36  华为开发者论坛  阅读(500)  评论(0编辑  收藏  举报