【鸿蒙应用ArkTS开发系列】- 云开发入门实战一使用鸿蒙登录组件实现客户端登录

news/2024/7/21 12:05:12 标签: harmonyos, 华为, ArkTS, 登录组件, 云开发

目录

  • 概述
  • 使用云端一体化开发模板创建项目工程
  • 创建登录入口页面
  • 集成登录SDK组件
  • 开启“手机号码”和“邮箱地址”认证方式

概述

通过本次课程,我们将学习怎么使用云端一体化开发模板来创建云开发工程,以及如何使用鸿蒙登录组件SDK进行客户端登录功能的开发,那下面我们直接进入本次课程的学习。

使用云端一体化开发模板创建项目工程

这块内容,在上一篇文章《【鸿蒙应用ArkTS开发系列】- 云开发入门简介》中已经进行了讲解,这块这里就不在过多赘述,没有看过的同学可以点击这里: 链接 查阅

创建完毕,整体的工程目录结构如下:
在这里插入图片描述

创建登录入口页面

  1. 我们创建AuthServices.ets 文件作为我们的登录页,具体路径如下:

"Application-> entry -> src -> main -> ets -> pages"目录下新建一个

在这里插入图片描述
代码如下:

import { Login, AuthMode } from "@ohos/agconnect-auth-component";
import router from '@ohos.router';

@Entry
@Component
export struct AuthServices {

  build() {
    Column() {
      Text('点击按钮登录')
        .fontSize(30)
        .padding({ bottom: 50 })
      Login({
        modes: [AuthMode.PASSWORD, AuthMode.PHONE_VERIFY_CODE],
        onSuccess: (user) => {
          router.pushUrl({ url: "pages/Functions", params: { user: user } });
        },
        onError: (err) => {
          console.error('error: ', err && err.message);
        }
      }) {
        Button('login')
          .width('90%')
          .align(Alignment.Center);
      }
    }.width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center);
  }
}

  1. 配置页面路由

在main_pages.json文件中配置页面路由。
“Application-> entry -> src -> main -> resources -> base ->profile -> main_pages.json”在这里插入图片描述
3. 将AuthServices配置为入口页
“Application-> entry -> src -> main -> ets -> entryability -> EntryAbility.ts”
打开EntryAbility文件,将windowStage.loadContent(‘pages/Index’ 修改为windowStage.loadContent(‘pages/AuthServices’。

“Application-> entry -> src -> main -> ets -> entryability -> EntryAbility.ts”
在这里插入图片描述
运行后效果如下图:
在这里插入图片描述
这里我们摆放了两个控件,一个是提示控件,一个是登录按钮,登录按钮是使用的登录组件SDK提供的组件。

集成登录SDK组件

依赖登录组件SDK

在AuthServices 页面中,我们引用了Login组件,这个组件来自于鸿蒙登录组件SDK,使用如下语句进行导入:
import { Login, AuthMode } from “@ohos/agconnect-auth-component”;
如果这里报警告,说明这个登录组件SDK我们没有配置依赖,那有两种依赖方式,
方式一:
那需要再entry模块下的oh-package.json5文件中,增加如下配置:“@ohos/agconnect-auth-component”: “^1.1.2” ,然后将鼠标移到该语句上,会出现执行ohpm install面板, 点击安装依赖即可,这种方式需要知道需要依赖的库的版本号;
在这里插入图片描述
方式二:
在Terminal面板中,用cd命令跳到entry目录下,然后执行ohpm install @ohos/agconnect-auth-component,就会开始安装依赖,完成后也是会在oh-package.json5 文件中增加一条配置。

使用登录组件SDK

我们可以直接在页面中导入并使用Login组件,使用的时候需要配置modes,
modes,这个是一个枚举

export enum AuthMode {
    PHONE_VERIFY_CODE = 'phone_verify_code',
    MAIL_VERIFY_CODE = 'mail_verify_code',
    PASSWORD = 'password',
}

我们可以根据实际情况选择,这里我配置了密码跟手机登录,实际预览 如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Login({}部分即为HarmonyOS云开发提供的登录组件能力。

  • modes:设置需要开启的认证类型。当前支持手机验证码登录(PHONE_VERIFY_CODE)、邮箱验证码登录(MAIL_VERIFY_CODE)和帐号密码登录(PASSWORD)。
  • onSuccess:登录成功后的回调函数,可以获取登录用户的信息,详细参见AGConnectUser,并进行下一步操作,本Codelab将引导至云函数功能的页面。
  • onError:登录失败的回调函数,返回的错误信息参见AGCAuthError。

这样我们就完成了登录组件SDK的集成和使用。

开启“手机号码”和“邮箱地址”认证方式

上面我们介绍了登录SDK的依赖和使用,但是我们还需要根据实际使用场景,在
AppGallery Connect 平台对我们的创建的项目开启配置启用“手机号码”和“邮箱地址”两种认证方式。

进入AppGallery Connect 选择我们的项目,在左侧目录中找到认证服务,在右边面板上找到手机号码、邮箱地址,点击右边的启用菜单开启对应的认证服务即可。
在这里插入图片描述

这样我们就完成了登录组件的基础和使用,这里我们回顾一下:

  • 使用端云一体化模板创建云开发工程
  • 依赖登录组件SDK
  • 创建页面使用登录组件
  • AppGallery Connect平台上为项目认证服务开启手机登录或者邮箱地址登录

那进行的文章就到此完毕,大家赶紧创建Demo试试看。
下一篇文章我再讲讲云开发工程,云数据库的使用以及云函数的部署,感谢阅读!


http://www.niftyadmin.cn/n/5198466.html

相关文章

二十一、数组(2)

本章概要 多维数组泛型数组Arrays的fill方法 多维数组 要创建多维的基元数组,你要用大括号来界定数组中的向量: import java.util.*;public class MultidimensionalPrimitiveArray {public static void main(String[] args) {int[][] a {{1, 2, 3,}…

svn问题集

被锁定,无法拉取提交 解决方法

MSG_ERR_INSTALL_DEPENDENT_MODULE_NOT_EXIST处理

问题现象: 在运行/调试过程中出现“Failure[MSG_ERR_INSTALL_DEPENDENT_MODULE_NOT_EXIST]”错误。 解决措施: 该问题是由于运行/调试的应用依赖的动态共享包(SharedLibrary)模块未安装导致安装报错,您可以通过如下…

ANSYS网格无关性检查

网格精度对应力结果存在很大的影响,有时候可以发现,随着网格精度逐渐提高,所求得的最大应力值逐渐趋于收敛。 默认网格: 从默认网格下计算出的应力云图可以发现,出现了的三处应力奇异点,此时算出的应力值是…

内部错误: !scandr.cpp@815: eWasOpenForWrite

内部错误: !scandr.cpp815: eWasOpenForWrite 这个错误通常表示在尝试关闭块记录时发生了一些问题,导致无法成功关闭。可能的原因包括块记录已经处于"打开"状态,或者在关闭块记录时发生了一些其他错误。 要解决这个问题,您可以尝…

Rocketmq消费消息时不丢失不重复

消息消费不丢失 手动ACK 在消费者端,需要确保在消息拉取并消费成功之后再给Broker返回ACK,就可以保证消息不丢失了,如果这个过程中Broker一直没收到ACK,那么就可以重试。所以,在消费者的代码中,一定要在业…

Polygon zkEVM协议治理、升级及其流程

1. 引言 随着Polygon社区开发者和内部团队的测试深入,当前版本的Polygon zkEVM不可避免地需更新和某些升级。 为激励开发者对Polygon zkEVM做battle-test,已启动了bug-bounty: Rewards by Threat Level 由于zk-Rollup生态系统还处于萌芽阶…

Spring Boot和Spring MVC的区别

1 Spring MVC 是Spring的一个模块,是一个web框架。分为Model,View,Controller(模型层、视图层、控制层)。 2 Spring Boot Spring Boot 自动配置,降低了项目搭建的复杂度。Spring框架需要大量的配置&…