美文网首页Harmony OS
Fa应用获取华为账户授权登录-鸿蒙(HarmonyOS)

Fa应用获取华为账户授权登录-鸿蒙(HarmonyOS)

作者: 91Shan | 来源:发表于2021-06-22 10:36 被阅读0次

    1、在 AGC 网站创建应用&开启“Account Kit”

    a、提前在开发者联盟注册账号,并完成个人实名认证/企业账号认证;
    ① 进入开放平台
    ② 联系华为工作人员,根据对接的接口人指导完成“凭证”菜单的开放
    b、在 AGC 网址创建应用,由于当前鸿蒙应用暂未支持手机设备,先以“Andrioid”

    类型申请

    ③ 再次进入开放平台
    ④ 点击“凭证”菜单
    ⑤ 点击“创建凭证”,选择创建“OAuth 2.0 客户端 ID”
    ⑥ 使用 keytool 工具,通过工程中.p12签名文件,获取SHA256证书指纹
    ⑦ 点击创建好的凭证,编辑,将SHA256证书指纹录入(注意应用包名要跟工程统一)
    c、进入“我的项目”的“API 管理”页面,选中开启“Account Kit”
    d、安装 npm 包:hms-js-account
    npm install @hmscore/hms-js-account
    //- 安装完成后,可以看到工程 entry/node_modules 目录下,已自动导入 hms-js�account;
    
    e、加载 hms har 包,将 har 包《jsb-ohos-adapter-debug.har》放置到 entry/libs 下
    f、修改 build.gradle,修改 entry 下的 build.gradle 文件,在 dependencies 中增加'*.har'

    【↑↑↑注:这个包是鸿蒙方提供的,当然也可以给我留言我给提供↑↑↑】

    g、 修改 config.json 文件

    1、在 deviceConfig/default 中增加配置:"allowComponentsProxy": true

    "deviceConfig": {
        "default": {
            "allowComponentsProxy": true
        }
    }
    

    2、在 module 中增加 metaData/customizeData,配置如下内容

    "metaData": {
        "customizeData": [
            {
                "name": "com.huawei.hms.client.appid",
                "value": "88888888" //- 前面第⑤步生成的签名的appid
            } 
         ] 
    }
    
    h、修改 MainAbility 文件

    修改 MainAbility 文件,覆写 onStart 和 onStop 方法,注册 hms 服务,具体如下
    (若 IDE 提示找不到 HmsBridge 类,可重启 IDE 再尝试)

    package com.huawei.ohosdemo;
    import com.huawei.hms.jsb.adapter.har.bridge.HmsBridge;
    import ohos.aafwk.content.Intent;
    import ohos.ace.ability.AceAbility;
    public class MainAbility extends AceAbility {
    private HmsBridge mHmsBridge;
    @Override
    public void onStart(Intent intent) {
    // 使用弹窗模态启动当前 Ability
    intent.setParam("window_modal", 3);
    // 注册账号授权服务
    mHmsBridge = HmsBridge.getInstance();
    mHmsBridge.initBridge(this);
    super.onStart(intent);
    }
    @Override
    public void onStop() {
    //注销账户服务
    mHmsBridge.destoryBridge();
    super.onStop();
    } }
    
    i、JS 文件(对应着MainAbility文件的page)

    文件导入

    import { HuaweiIdAuthParamsHelper, HuaweiIdAuthManager, OPENID,  PROFILE, GAMES } from '@hmscore/hms-js-account'
    

    登录示例

    signIn: function () {
        console.info("signIn start");
        var signInOption = new HuaweiIdAuthParamsHelper().setId().setProfile().setMobileNumber().setA uthorizationCode().build();
        console.info("signIn signInOption:" + JSON.stringify(signInOption));
        HuaweiIdAuthManager.getAuthApi().getSignInIntent(signInOption).then((result)=>{
            console.info("signIn success:" + JSON.stringify(result));
            //- 此处获取到 auth_code 应将其传给三方云,三方云调用华为接口通过auth_code 获取 at/rt/unionId,手机号
            //- 然后使用 unionId,手机号 完成账号绑定逻辑,再将结果返回 fa
            //- 授权绑定过程结束,进入下一个流程
            this.signOuting = false;
            prompt.showToast({message:"授权登录成功"}) }).catch((error)=>{
                console.error("signIn fail : " + JSON.stringify(error));
                this.signing = false; 
            });
    },
    

    登出示例

    signOut: function () {
        HuaweiIdAuthManager.getAuthApi().signOut().then((result)=>{
            console.info("signOut success:" + JSON.stringify(result));
            this.signing = false;
            prompt.showToast({message:"退出账号成功"}) 
        }).catch((error) => {
            console.error("signout fail" + JSON.stringify(error));
            this.signOuting = false; 
        }); 
    },
    
    

    静默检查登录授权

    silentSignIn: function () {
        console.info("silentSignIn start");
        var signInOption = new HuaweiIdAuthParamsHelper().setId().setProfile().setAuthorizationCode().build();
        console.info(JSON.stringify(signInOption));
        HuaweiIdAuthManager.getAuthApi().silentSignIn(signInOption).then((result) => {
            console.info("silentSignIn success : " + JSON.stringify(result));
            prompt.showToast({message:"静默授权登录成功"}) }).catch((error) => {
                console.error("silentSignIn fail : " + JSON.stringify(error)); 
            }); 
        }); 
    },
    

    运行结果⬇️⬇️⬇️⬇️⬇️


    1624329507913.jpg

    注:具体的效果可以试一试,详细的问题也可以留言找我

    相关文章

      网友评论

        本文标题:Fa应用获取华为账户授权登录-鸿蒙(HarmonyOS)

        本文链接:https://www.haomeiwen.com/subject/jpceeltx.html