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

news2025/1/16 1:35:51

目录

  • 概述
  • 使用云端一体化开发模板创建项目工程
  • 创建登录入口页面
  • 集成登录SDK组件
    • 依赖登录组件SDK
    • 使用登录组件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.coloradmin.cn/o/1239905.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习第12天:聚类

文章目录 机器学习专栏 无监督学习介绍 聚类 K-Means 使用方法 实例演示 代码解析 绘制决策边界 本章总结 机器学习专栏 机器学习_Nowl的博客-CSDN博客 无监督学习介绍 某位著名计算机科学家有句话:“如果智能是蛋糕,无监督学习将是蛋糕本体&a…

Deepmind开发音频模型Lyria 用于生成高品质音乐;创建亚马逊新产品评论摘要

🦉 AI新闻 🚀 Deepmind开发音频模型Lyria 用于生成高品质音乐 摘要:Deepmind推出名为Lyria的音频模型,可生成带有乐器和人声的高品质音乐。Lyria模型针对音乐生成的挑战,解决了音乐信息密度高、音乐序列中的连续性维…

智能驾驶产品开发中如何贯彻“正向开发”理念

摘要: 基于演绎法的正向开发理念,能够让智能驾驶产品在充分满足用户需求,保证产品质量的同时,确保开发目标合理且得到落实。 前段时间,微博CEO吐槽理想L9智能驾驶“行驶轨迹不居中”,在网上引发了热烈讨论…

Youtube运营如何打破0播放?你需要的技巧、策略与工具

对于有跨境意向的内容创作者或者品牌企业来说,YouTube是因其巨大的潜在受众群和商业价值成为最值得投入变现与营销计划的平台。 据统计,98% 的美国人每月访问 YouTube,近三分之二的人每天访问。但是,YouTube还远未达到过度饱和的…

Android APN 参数数据库设计和代码实现

Android U 网页代码:/ - OpenGrok cross reference for / (aospxref.com) 字段参数介绍 实体对象 ApnSetting ApnSetting.java - OpenGrok cross reference for /frameworks/base/telephony/java/android/telephony/data/ApnSetting.java (aospxref.com) An Acc…

你不知道的库:库的种类,作用和加载方式

你不知道的库:库的种类,作用和加载方式 📟作者主页:慢热的陕西人 🌴专栏链接:Linux 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客…

Linux 局域网传输工具LANDrop安装

Linux 局域网传输工具LANDrop安装 🥙下载🌭解压🥪运行 🥙下载 官网下载 或网盘 🌭解压 使用以下命令解压获得squashfs-root文件夹 ./LANDrop-latest-linux.AppImage --appimage-extract🥪运行 进入squ…

分布式锁3: zk实现分布式锁

一 zk 实现分布式锁 1.1 zk分布式操作命令 1.指令: ls / get /zookeeper create /aa "test" delete /aa set /aa "test1" 2..znode节点类型: 永久节点:create /pa…

028 - STM32学习笔记 - ADC结构体学习(二)

028 - STM32学习笔记 - 结构体学习(二) 上节对ADC基础知识进行了学习,这节在了解一下ADC相关的结构体。 一、ADC初始化结构体 在标准库函数中基本上对于外设都有一个初始化结构体xx_InitTypeDef(其中xx为外设名,例如…

从mysql源码编译出相应的库和可执行文件及搭建mysql服务端

目录 1. 问题的提出 2. 源码下载 3. 升级或安装某些前置软件 3.1. 升级CMake 3.2. 升级gcc、g 4. 安装依赖库 4.1. 安装OpenSSL 4.2. 安装Curses 4.3. 安装pkg-config 5. 编译、安装 6. 编译结果、配置 7. 编译错误处理 7.1. 错误1 7.2. 错误2 8. 搭建mysql数…

FindMy技术用于充电宝

充电宝是一种便捷的充电器,方便个人随身携带,能够自行储备电能,为主流电子设备提供充电服务。它广泛应用于没有外部电源供应的场所,例如旅行、户外活动或紧急情况下,为用户的手持设备提供持续的电力支持,确…

C语言--数组与指针--打印字符串的n种方式

一.知识背景 一维数组名的含义 arr一般表示数组的起始地址(除了两种例外) 1.在定义数组的同一个函数中(不是形参),求sizeof(arr),求整个数组的字节数 2.在定义数组的同一个函数中(不是形参),&arr1,加整个数组的大小 (经常考试) 3.除上面以外,arr都表…

第四代智能井盖传感器:智能井盖位移怎么进行监测

井盖是城市基础设施的一个重要组成部分,若井盖出现移位等现象,可能会对路过的车辆和行人造成潜在危险。特别是那些含有甲烷气体的井盖,一旦气体超过阈值且被意外踩踏,可能会导致气体的释放,这便会引发一系列安全事故&a…

给定一个非严格递增排列的有序数组,删除数组中的重复项

实例要求:1、给定一个非严格递增排列的有序数组 nums ;2、原地 删除重复出现的元素,使每个元素 只出现一次 ;3、返回删除后数组的新长度;4、元素的 相对顺序 应该保持 一致 ;5、然后返回 nums 中唯一元素的…

Unsupervised MVS论文笔记

Unsupervised MVS论文笔记 摘要1 引言2 相关工作3 实现方法 Tejas Khot and Shubham Agrawal and Shubham Tulsiani and Christoph Mertz and Simon Lucey and Martial Hebert. Tejas Khot and Shubham Agrawal and Shubham Tulsiani and Christoph Mertz and Simon Lucey and …

二十二、数组(4)

本章概要 随机生成泛型和基本数组 随机生成 我们可以按照 Count.java 的结构创建一个生成随机值的工具: Rand.java import java.util.*; import java.util.function.*;import static com.example.test.ConvertTo.primitive;public interface Rand {int MOD 10_0…

详解自动化之单元测试工具Junit

目录 1.注解 1.1 Test 1.2 BeforeEach 1.3 BeforeAll 1.4 AfterEach 1.5 AfterAll 2. 用例的执行顺序 通过 order() 注解来排序 3. 参数化 3.1 单参数 3.2 多参数 3.3 多参数(从第三方csv文件读取数据源) 3.4 动态参数ParameterizedTest MethodSource() 4. 测试…

数字IC后端设计利器 - 《Innovus的基本使用流程和命令》

Innovus作为数字后端工具的后起之秀,在先进工艺下已经取得了令人瞩目的成就。其在Run time上的优势令人刮目,在timing、DRC、IR-drop上的结果更是让人竖起大拇指。 数字IC后端工程师学习Cadence公司的Innovus工具非常重要,因为Innovus是一款…

YOLOv8改进实战 | 更换主干网络Backbone(六)之轻量化模型VanillaNet进阶篇

前言 轻量化网络设计是一种针对移动设备等资源受限环境的深度学习模型设计方法。下面是一些常见的轻量化网络设计方法: 网络剪枝:移除神经网络中冗余的连接和参数,以达到模型压缩和加速的目的。分组卷积:将卷积操作分解为若干个较小的卷积操作,并将它们分别作用于输入的不…

封面从这里取好啦

文章目录 前端NPMViteNode.js 后端JavaMavenPython 数据库算法 前端 NPM Vite Node.js 后端 Java Maven Python 数据库 算法