3

OpenHarmony应用集成AGC认证服务实现登录

 1 year ago
source link: https://www.51cto.com/article/742660.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
d3bf4b17505e8583880607c21f8830a721f97e.png

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com​

11月4日在HDC大会(华为开发者大会2022)推出一套覆盖应用设计、开发、测试、上架、运营全生命周期的七大鸿蒙开发套件“金字塔”,本次分享内容围绕处于“塔尖”位置的一站式鸿蒙应用及原子化服务运营平台AGC(AppGallery Connect,华为应用市场)展开。

OpenHarmony应用集成AGC认证服务实现登录-开源基础软件社区

1、认识AGC

AGC是华为整合内部各项优秀服务,并将在全球化、质量、安全、工程管理等领域长期积累的能力开放给开发者,其致力于为应用的创意、开发、分发、运营、经营各环节提供一站式服务,为构建全场景智慧化应用赋能。应用程序集成AGC服务,可大幅降低应用开发成本,提升开发效率,提高版本质量,其开放分发和运营服务,助力应用商业化成功。

AGC提供一站式全球发布、用户精细化运营、应用高效开发、质量无忧护航四类场景解决方案,通过应用发布前云测试、云调试等服务对应用性能等方面进行检测,从而降低应用上架审核驳回率。从2019年5月华为推出首个AGC版本至今,AGC从最初仅支持Android应用到目前支持Android、IOS、Web、小程序/小游戏、快应用,HarmonyOS应用,其在不断迭代中壮大。

OpenHarmony应用集成AGC认证服务实现登录-开源基础软件社区

随着后端架构不断演进,从初始的单体架构到微服务架构,再到当前新型的Serverless架构,AGC以Serverless为基座,搭配云端开发,实现云端一体化能力,让开发者成为全栈工程师,端开发者可以通过集成云端库并编写少量代码即可实现业务模块,不需要关注底层业务逻辑,如系统版本、环境搭建等。

OpenHarmony应用集成AGC认证服务实现登录-开源基础软件社区

2021年9月28日发布了支持HarmonyOS应用程序的AGC SDK,从1.1到1.3三个版本的不断演进过程中,对于五大服务体系支持的越来越完整,当前支持认证服务、云函数、云数据库、应用内消息、远程配置、崩溃及App Linking。

OpenHarmony应用集成AGC认证服务实现登录-开源基础软件社区

HarmonyOS系统是OpenHarmony的商用版本,因此为HarmonyOS提供支持的AGC也可以在OpenHarmony应用程序中集成。接下来将进入今天的主题,OH应用集成AGC认证服务实现登录。

2、开通AGC服务

要使OH应用程序能够正常使用,则需要先在​​AGC控制台​​项目应用中开通认证服务模块,完整的开通流程为:

  • 开通认证服务

(1)创建项目

在AGC控制台点击“我的项目”打开项目创建,在AGC中项目相当于一个文件夹,该文件夹中存储各系统的应用程序,如适用于Android、IOS、HarmonyOS、小程序的应用。

OpenHarmony应用集成AGC认证服务实现登录-开源基础软件社区

OpenHarmony应用集成AGC认证服务实现登录-开源基础软件社区

(2)创建应用

AGC项目创建完成后,默认打开项目常规设置页签,点击页签中的“添加应用”创建应用。

OpenHarmony应用集成AGC认证服务实现登录-开源基础软件社区

(3)开通认证服务

展开左侧列表“Serverless”,点击“认证服务”打开认证服务开通界面,点击页面中的“立即开通”按钮,开通认证服务功能。

OpenHarmony应用集成AGC认证服务实现登录-开源基础软件社区

开通认证服务后,还需要根据业务需要,启用相关的登录认证能力,当前提供手机号、邮箱、三方授权、匿名账号及自有账号的登录方式。本次以手机号为例,只需要启用手机号码登录即可。

OpenHarmony应用集成AGC认证服务实现登录-开源基础软件社区

3、集成AGC服务

AGC提供的认证服务SDK有两种,一种是接口方式,一种是弹窗方式。打开鸿蒙生态开发资源包DevEco Marketplace,切换到应用及服务组件页签中,在搜索框中输入agconnect-auth,其中agconnect-auth是接口类型的,而agconnect-auth-component是为ArkUI提供的自定义弹窗库。

OpenHarmony应用集成AGC认证服务实现登录-开源基础软件社区

(1)创建OH应用程序

打开DevEco Studio开发工具,创建名称和包名均与AGC添加应用时名称和包名一致的OH应用,此处选择OH模板选择Empty Ability空模板。

OpenHarmony应用集成AGC认证服务实现登录-开源基础软件社区

(2)引入AGC认证服务SDK依赖包

  1. 通过npm方式引入依赖。
// 定位到工程entry目录
cd entry
npm install --save @ohos/agconnect-auth-component
  1. 明确依赖包版本则直接在package.json配置文件中dependencies中引入依赖包。
{
  ...
  "dependencies": {
    "@ohos/agconnect-auth-component": "^1.0.0"
  }
}

(3)引入SDK配置文件

在AGC项目设置常规页签中,下载应用栏中的agconnect-services.json配置文件,并拷贝到项目AppScope/resources/rawfile/目录下。

OpenHarmony应用集成AGC认证服务实现登录-开源基础软件社区

(4)实现登录业务

  1. 在页面引入登录组件。
// Login:自定义登录弹窗组件
// AuthMode:登录弹窗类型(PASSWORD方式,手机号+验证码方式,邮箱+验证码方式)
import { Login, AuthMode } from '@ohos/agconnect-auth-component';
  1. 点击按钮弹窗登录框进行登录。
Login({
  modes: [AuthMode.PHONE_VERIFY_CODE],
  apiKey: APIKEY,
  clientSecret: CLIENT_SECRET,
  onSuccess: () => {
    // 登录成功后操作
  }
}) {
  Text('登录')
    .height('100%')
    .fontSize(26).fontWeight(FontWeight.Bold)
}

使用场景如不需要直接登录即可浏览的App,都可在需要用户登录状态处进行弹窗登录。如商品订单支付功能需要用户登录后获取用户收货地址,此处即可在下单时判断用户登录状态是否需要弹出登录框。

  1. 权限
    使用AGC认证服务需要网络支撑,因此需要在module.json5配置文件中添加网络权限。
{
  "module": {
    ...
    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]
  }
}
  1. 运行设备
    可以在entry模块的build-profile.json5配置文件中更改其name属性为default的runtimeOS(运行系统)为HarmonyOS即可在HarmonyOS 3.1系统的设备上运行。
{
  ...
  "targets": [
    {
      "name": "default",
      "runtimeOS": "HarmonyOS"
    }
  ]
}

(5)运行效果

最终运行效果参见​​OpenHarmony应用集成AGC认证服务实现登录演示​

4、运行Demo

① 更改app.json5中bundleName为AGC应用的包名,项目名称可默认
② 拷贝agconnect-services.json配置文件到工程/AppScope/resources/rawfile/目录下
③ 在/entry/src/main/ets/common/Constant.ts中填写APIKEY和CLIENT_SECRET,两个值取自AGC项目设置常规标签下的项目信息的ApiKey和ClientSecret。
④ 真机设备需要给应用进行签名。

文章相关附件可以点击下面的原文链接前往下载

 https://ost.51cto.com/resource/2441。

https://ost.51cto.com/resource/2442。

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com​


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK