鸿蒙 HarmonyOS NEXT端云一体化开发-华为登录
·
一、开通华为登录认证服务
//步骤
//1. 进入到项目设置页面中,并点击左侧菜单中的认证服务
//2.开启华为登录服务

开启华为账号登录服务:

Client ID和Client Secret获取方式:

开启华为账号服务

二、端侧使用华为登录
前提
TODO:添加环境依赖
// entry目录下的oh-package.json5
// 路径 entry/oh-package.json5
// 添加依赖
"dependencies": {
"@hw-agconnect/auth": "^1.0.5"
}
TODO:开通网络权限
// 文件名:module.json5
// 路径:src/main/module.json5
"requestPermissions": [
{
"name": "ohos.permission.INTERNET" // 网络权限
},
]
TODO:配置client_id
// 文件名 module.json5
// 路径 entry/src/main/module.json5
//配置client_id
"metadata": [{
"name": "client_id",
"value": "项目应用的Client ID"
}]
四、实现华为静默登录
1.封装华为静默登录方法
import auth from "@hw-agconnect/auth"
export class UserManager {
async initUser() {
// 步骤1:尝试获取当前已登录用户
let user = await auth.getCurrentUser();
// 步骤2:用户不存在时执行登录流程
if (user === null) {
// 调用认证服务进行华为账号登录
await auth.signIn({
autoCreateUser: true, // 开启自动创建用户功能
'credentialInfo': { // 认证凭证配置
'kind': 'hwid' // 指定华为账号认证方式
}
});
// 重新获取登录后的用户对象
user = await auth.getCurrentUser()
}
}
}
export const userManager = new UserManager() //导出单例
2.调用华为静默登录方法
//路径:entry/src/main/ets/entryability/EntryAbility.ets
/**
* 原有代码省略
*/
onWindowStageCreate(windowStage: window.WindowStage): void {
// Main window is created, set main page for this ability
hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
screenManager.init()
windowStage.loadContent('pages/Index', (err) => {
if (err.code) {
hilog.error(DOMAIN, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err));
return;
}
hilog.info(DOMAIN, 'testTag', 'Succeeded in loading the content.');
userManager.initUser()
});
}
注:只能在真机运行才可以,只有真机未登录华为账号时才会拉起华为登录,否则不会感到登录

更多推荐



所有评论(0)