HarmonyOS 鸿蒙Next 3.1握手Serverless - Email注册账号 “蒙”友会“稿”起来
HarmonyOS 鸿蒙Next 3.1握手Serverless - Email注册账号 “蒙”友会“稿”起来 前言: 此贴主要讲解Email注册账号,并登录后获得返回的Email地址,本贴是在【“蒙”友会“稿”起来】HarmonyOS 3.1握手Serverless - UI篇基础上开发的,手工集成Serverless配置文件,并且实现Email注册账号,这里为什么要讲手工集成Serverless,而不用新版本DevEco Studio端云一体化开发,端云一体化开发-HTTP触发器的认证类型这贴子是我之前写的,端云一体化开发,在开发上大大提高工作效力,但我们在学习阶段,还是要知道原理,知道端云一体化开发,都帮我们完成那些手动工作,只要动手实现集成Serverless登录认证、调用云函数、云数据库,那么我们除了懂得开发HarmonyOS应用集成Serverless,在开发其它应用也可以快速集成Serverless的使用。
效果:
讲解:
-
前提条件 1.1. 您需要在AGC控制台开通认证服务 1.2. 您需要先在您的应用中集成SDK
-
添加应用配置文件 2.1. 获取“agconnect-services.json”文件。 2.2. 将“agconnect-services.json”文件拷贝到DevEco Studio项目的应用级资源目录“AppScope/resources/rawfile”下。 2.3. 打开您的工程,在命令行窗口执行
cd directory
命令,切换到工程的entry目录。 2.4. 安装Auth Service OHOS SDK到您的项目中。
npm install --save @hw-agconnect/auth-ohos@1.0.9
- 集成AGC SDK 3.1 在项目中EntryAbility.ts导入agc组件, 并把agconnect保存到全局变量。
// 导入 AGC 相关依赖
import agconnect from '@hw-agconnect/api-ohos';
import "@hw-agconnect/core-ohos";
import "@hw-agconnect/auth-ohos";
3.2 在应用初始化阶段使用context初始化SDK,推荐在EntryAbility的onCreate中进行。
export default class EntryAbility extends UIAbility {
onCreate(want, launchParam) {
// 初始化AGC SDK
agconnect.instance().init(this.context.getApplicationContext());
globalThis.agconnect = agconnect;
}
}
3.3 在“entry/src/main/module.json5”中添加网络权限。
{
"requestPermissions": [
{
"name": "ohos.permission.INTERNET"
}
]
}
- Email注册账号 4.1 在EmailPage.ets页面,从全局变量获取AGConnectAuth。
import { EmailAuthProvider, VerifyCodeAction, EmailUserBuilder, VerifyCodeSettingBuilder, AGConnectAuth } from "@hw-agconnect/auth-ohos";
let auth: AGConnectAuth = globalThis.agconnect.auth();
4.2 在获取验证码按钮点击事件,验证邮箱并获取验证码。
// 生成验证码
let verifyCodeSettings = new VerifyCodeSettingBuilder()
.setAction(VerifyCodeAction.REGISTER_LOGIN)
.setLang('zh_CN')
.setSendInterval(60)
.build();
auth.requestEmailVerifyCode(this.userName, verifyCodeSettings)
.then(verifyCodeResult => {
console.info("xx 收到验证码:" + JSON.stringify(verifyCodeResult))
promptAction.showToast({message: "验证码已发到邮箱,请查收!", duration: 2000})
})
.catch(error => {
console.error("xx 请求验证码失败: " + error)
})
4.3 在注册按钮点击事件,注册填写Email为账号。
let emailUser = new EmailUserBuilder()
.setEmail(this.userName)
.setPassword(this.password)
.setVerifyCode(this.verifyCode)
.build();
auth.createEmailUser(emailUser)
.then(result => {
// 创建帐号成功后,默认已登录
console.info("xx 邮箱注册成功 " + result.getUser().getUid());
promptAction.showDialog({
title: '温馨提示',
message: '邮箱注册成功',
buttons: [
{
text: '确定',
color: '#000000',
}
],
})
.then(data => {
console.info('xx showDialog success, click button: ' + data.index);
router.replaceUrl({
url: CommonConstants.MINE_PAGE_URL
});
})
.catch(err => {
console.info('xx 显示信息对话框错误: ' + err);
})
})
.catch(error => {
// 创建用户失败
console.error("xx 邮箱注册失败 " + error)
promptAction.showToast({message: "邮箱注册失败!", duration: 2000})
})
4.4 在LoginPage实现登录功能。
import { EmailAuthProvider, VerifyCodeAction, EmailUserBuilder, VerifyCodeSettingBuilder, PhoneAuthProvider, AGConnectAuth } from "@hw-agconnect/auth-ohos";
let auth: AGConnectAuth = globalThis.agconnect.auth();
auth.getCurrentUser().then(user => {
if (user) {
console.info("xx Login用户信息:" + user.getUid())
router.pushUrl({
url: CommonConstants.MINE_PAGE_URL
});
} else {
console.warn("xx 获取用户信息为空")
let credential = EmailAuthProvider.credentialWithPassword(this.userName, this.password);
auth.signIn(credential).then(signInResult => {
console.info("xx 邮箱登录成功 " + signInResult.getUser().getUid());
router.pushUrl({
url: CommonConstants.MINE_PAGE_URL
});
}).catch(err => {
console.error("xx 没有此用户 " + err)
promptAction.showToast({message: "没有此用户,请注册后再登录!", duration: 2000})
});
}
}).catch(err => {
console.error("xx 1没有此用户 " + err)
promptAction.showToast({message: "没有此用户,请注册后再登录!", duration: 2000})
});
总结: 手工集成Serverless与端云一体化开发,手工要自己到AGC下载agconnect-services.json文件放到指定目录下,同时手工配置SDK依赖,其他认证,调用都是一样的,手工集成Serverless流程清楚后,之后其它非HarmonyOS项目要集成Serverless也是一样操作。
更多关于HarmonyOS 鸿蒙Next 3.1握手Serverless - Email注册账号 “蒙”友会“稿”起来的实战教程也可以访问 https://www.itying.com/category-93-b0.html
学习了
更多关于HarmonyOS 鸿蒙Next 3.1握手Serverless - Email注册账号 “蒙”友会“稿”起来的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
学习了
学习
实用
找HarmonyOS工作还需要会Flutter技术的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17
唔错唔错
学习了
学习了,手工集成确实学到不少知识。
针对帖子标题“HarmonyOS 鸿蒙Next 3.1握手Serverless - Email注册账号 ‘蒙’友会‘稿’起来”,以下是对鸿蒙相关问题的专业回答:
在HarmonyOS鸿蒙Next 3.1中,若要实现与Serverless架构的握手,并通过Email注册账号功能,主要需关注以下几个方面:
-
Serverless集成:鸿蒙系统需通过API或SDK与Serverless平台(如华为云函数计算等)进行集成。开发者需确保鸿蒙应用能够正确调用Serverless函数,实现后端逻辑的无服务器化处理。
-
Email服务接入:为了支持Email注册账号功能,鸿蒙应用需接入邮件发送服务。这通常涉及配置SMTP服务器或使用第三方邮件发送API。开发者需确保邮件发送服务的稳定性和安全性。
-
用户数据验证:在Email注册过程中,需对用户输入的邮箱地址进行验证,确保邮箱的有效性。这可以通过发送验证邮件,要求用户点击链接完成验证来实现。
-
安全性考虑:在实现上述功能时,需特别注意数据安全和用户隐私保护。采用加密通信、安全存储等措施,确保用户信息不被泄露。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html,