Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
c828c67f
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
c828c67f
编写于
8月 01, 2023
作者:
L
liuziweicom
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
change for userAuth API10
Signed-off-by:
N
liuziweicom
<
liuziwei12@huawei.com
>
上级
1f9d8e2e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
67 addition
and
137 deletion
+67
-137
zh-cn/application-dev/security/userauth-guidelines.md
zh-cn/application-dev/security/userauth-guidelines.md
+67
-137
未找到文件。
zh-cn/application-dev/security/userauth-guidelines.md
浏览文件 @
c828c67f
# 用户认证开发指导
> **说明:**
> 该开发指导需配合API version
9
版本的SDK使用。
> 该开发指导需配合API version
10
版本的SDK使用。
## 场景介绍
当前用户认证支持人脸识别和指纹识别,可应用于设备解锁、应用登录、支付等身份认证场景。
当前用户认证支持
Pin码认证、
人脸识别和指纹识别,可应用于设备解锁、应用登录、支付等身份认证场景。
## 接口说明
...
...
@@ -18,11 +18,11 @@ userIAM_userAuth模块提供了用户认证的相关方法,包括查询认证
| 接口名称 | 功能描述 |
| ---------- | ----------------------- |
| getAvailableStatus(authType : UserAuthType, authTrustLevel : AuthTrustLevel): void | 根据指定的认证类型、认证等级,检测当前设备是否支持相应的认证能力。 |
| get
AuthInstance(challenge : Uint8Array, authType : UserAuthType, authTrustLevel : AuthTrustLevel): AuthInstance | 获取AuthInstance对象,用于执行用户身份认证
。 |
| on(
name : AuthEventKey, callback : AuthEvent) : void | 订阅指定类型的用户认证事件
。 |
| off(
name : AuthEventKey) : void | 取消订阅特定类型的认证事件
。 |
| start
: void
| 执行用户认证。 |
| cancel: void | 取消本次认证操作。 |
| get
UserAuthInstance(authParam: AuthParam, widgetParam: WidgetParam): UserAuthInstance | 获取UserAuthInstance对象,用于执行用户身份认证,并支持使用统一用户身份认证组件
。 |
| on(
type: 'result', callback: IAuthCallback): void | 订阅用户身份认证结果
。 |
| off(
type: 'result', callback?: IAuthCallback): void | 取消订阅用户身份认证结果
。 |
| start
(): void
| 执行用户认证。 |
| cancel
()
: void | 取消本次认证操作。 |
## 查询当前设备是否支持相应的认证能力
...
...
@@ -34,7 +34,7 @@ userIAM_userAuth模块提供了用户认证的相关方法,包括查询认证
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';
// 查询认证能力是否支持
try {
userIAM_userAuth.getAvailableStatus(userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1);
...
...
@@ -48,127 +48,56 @@ userIAM_userAuth模块提供了用户认证的相关方法,包括查询认证
### 开发步骤
1.
申请权限。调用
[
start
](
../reference/apis/js-apis-useriam-userauth.md#start
9
)
接口,需要在module.json5文件的requestPermissions对象中配置ohos.permission.ACCESS_BIOMETRIC权限。更多配置信息请参考
[
Stage模型应用程序包结构
](
../quick-start/module-configuration-file.md
)
。
1.
申请权限。调用
[
start
](
../reference/apis/js-apis-useriam-userauth.md#start
10
)
接口,需要在module.json5文件的requestPermissions对象中配置ohos.permission.ACCESS_BIOMETRIC权限。更多配置信息请参考
[
Stage模型应用程序包结构
](
../quick-start/module-configuration-file.md
)
。
2.
指定challenge、
[
认证类型
](
../reference/apis/js-apis-useriam-userauth.md#userauthtype8
)
和
[
认证等级
](
../reference/apis/js-apis-useriam-userauth.md#authtrustlevel8
)
,获取认证对象。
3.
调用
[
on
](
../reference/apis/js-apis-useriam-userauth.md#on
9
)
接口订阅认证结果。
3.
调用
[
on
](
../reference/apis/js-apis-useriam-userauth.md#on
10
)
接口订阅认证结果。
4.
调用
[
start
](
../reference/apis/js-apis-useriam-userauth.md#start
9
)
接口发起认证,通过
[
callback
](
../reference/apis/js-apis-useriam-userauth.md#callback9
)
回调返回认证结果。
4.
调用
[
start
](
../reference/apis/js-apis-useriam-userauth.md#start
10
)
接口发起认证,通过
[
callback
](
../reference/apis/js-apis-useriam-userauth.md#callback10
)
回调返回认证结果。
5.
调用
[
off
](
../reference/apis/js-apis-useriam-userauth.md#off
9
)
接口取消订阅认证结果。
5.
调用
[
off
](
../reference/apis/js-apis-useriam-userauth.md#off
10
)
接口取消订阅认证结果。
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';
let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
let authType = userIAM_userAuth.UserAuthType.FACE;
let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1;
// 获取认证对象
let auth;
try {
auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel);
console.log("get auth instance success");
} catch (error) {
console.log("get auth instance failed" + error);
}
// 订阅认证结果
const authParam = {
challenge: new Uint8Array([49, 49, 49, 49, 49, 49]),
authType: [userAuth.UserAuthType.PIN],
authTrustLevel: 10000,
};
const widgetParam = {
title: '请输入密码',
navigationButtonText: '返回',
windowMode: userAuth.WindowModeType.DIALOG_BOX,
};
let userAuthInstance;
try {
auth.on("result", {
callback: (result: userIAM_userAuth.AuthResultInfo) => {
console.log("authV9 result " + result.result);
console.log("authV9 token " + result.token);
console.log("authV9 remainAttempts " + result.remainAttempts);
console.log("authV9 lockoutDuration " + result.lockoutDuration);
//获取认证对象
userAuthInstance = userIAM_userAuth.getUserAuthInstance(authParam, widgetParam);
console.log('get userAuth instance success');
//订阅认证结果
userAuthInstance.on('result', {
onResult (result) {
console.log('userAuthInstance callback result = ' + JSON.stringify(result));
}
});
console.log("subscribe authentication event success");
console.log('auth on success');
userAuthInstance.start();
console.log('auth start success');
} catch (error) {
console.log(
"subscribe authentication event failed " + error
);
console.log(
'auth on catch error: ' + JSON.stringify(error)
);
}
// 开始认证
try {
auth.start();
console.info("authV9 start auth success");
} catch (error) {
console.info("authV9 start auth failed, error = " + error);
}
// 取消订阅认证结果
//取消订阅认证结果
try {
auth.off("result");
console.info("cancel subscribe authentication event success");
} catch (error) {
console.info("cancel subscribe authentication event failed, error = " + error);
}
```
## 执行认证操作并订阅认证过程中的提示信息
### 开发步骤
1.
申请权限。调用
[
start
](
../reference/apis/js-apis-useriam-userauth.md#start9
)
接口,需要在module.json5文件的requestPermissions对象中配置ohos.permission.ACCESS_BIOMETRIC权限。更多配置信息请参考
[
Stage模型应用程序包结构
](
../quick-start/module-configuration-file.md
)
。
2.
指定challenge、
[
认证类型
](
../reference/apis/js-apis-useriam-userauth.md#userauthtype8
)
和
[
认证等级
](
../reference/apis/js-apis-useriam-userauth.md#authtrustlevel8
)
,获取认证对象。
3.
调用
[
on
](
../reference/apis/js-apis-useriam-userauth.md#on9
)
接口订阅认证过程中的提示信息。
4.
调用
[
start
](
../reference/apis/js-apis-useriam-userauth.md#start9
)
接口发起认证,通过
[
callback
](
../reference/apis/js-apis-useriam-userauth.md#callback9
)
回调返回认证过程中的提示信息。
5.
调用
[
off
](
../reference/apis/js-apis-useriam-userauth.md#off9
)
接口取消订阅认证过程中的提示信息。
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';
let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
let authType = userIAM_userAuth.UserAuthType.FACE;
let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1;
// 获取认证对象
let auth;
try {
auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel);
console.log("get auth instance success");
} catch (error) {
console.log("get auth instance failed" + error);
}
// 订阅认证过程中的提示信息
try {
auth.on("tip", {
callback : (result : userIAM_userAuth.TipInfo) => {
switch (result.tip) {
case userIAM_userAuth.FaceTips.FACE_AUTH_TIP_TOO_BRIGHT:
// do something;
case userIAM_userAuth.FaceTips.FACE_AUTH_TIP_TOO_DARK:
// do something;
default:
// do others
}
userAuthInstance.off('result', {
onResult (result) {
console.log('auth off result: ' + JSON.stringify(result));
}
});
console.log("subscribe authentication event success");
} catch (error) {
console.log("subscribe authentication event failed " + error);
}
// 开始认证
try {
auth.start();
console.info("authV9 start auth success");
} catch (error) {
console.info("authV9 start auth failed, error = " + error);
}
// 取消订阅认证过程中的提示信息
try {
auth.off("tip");
console.info("cancel subscribe tip information success");
console.log('auth off success');
} catch (error) {
console.
info("cancel subscribe tip information failed, error = " + error
);
console.
log('auth catch error: ' + JSON.stringify(error)
);
}
```
...
...
@@ -176,43 +105,44 @@ userIAM_userAuth模块提供了用户认证的相关方法,包括查询认证
### 开发步骤
1.
申请权限。调用
[
cancel
](
../reference/apis/js-apis-useriam-userauth.md#cancel
9
)
接口,需要在module.json5文件的requestPermissions对象中配置ohos.permission.ACCESS_BIOMETRIC权限。更多配置信息请参考
[
Stage模型应用程序包结构
](
../quick-start/module-configuration-file.md
)
。
1.
申请权限。调用
[
cancel
](
../reference/apis/js-apis-useriam-userauth.md#cancel
10
)
接口,需要在module.json5文件的requestPermissions对象中配置ohos.permission.ACCESS_BIOMETRIC权限。更多配置信息请参考
[
Stage模型应用程序包结构
](
../quick-start/module-configuration-file.md
)
。
2.
指定challenge、
[
认证类型
](
../reference/apis/js-apis-useriam-userauth.md#userauthtype8
)
和
[
认证等级
](
../reference/apis/js-apis-useriam-userauth.md#authtrustlevel8
)
,获取认证对象。
3.
调用
[
start
](
../reference/apis/js-apis-useriam-userauth.md#start
9
)
接口发起认证。
3.
调用
[
start
](
../reference/apis/js-apis-useriam-userauth.md#start
10
)
接口发起认证。
4.
通过调用
[
cancel
](
../reference/apis/js-apis-useriam-userauth.md#cancel
9
)
接口取消本次认证。
4.
通过调用
[
cancel
](
../reference/apis/js-apis-useriam-userauth.md#cancel
10
)
接口取消本次认证。
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';
let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
let authType = userIAM_userAuth.UserAuthType.FACE;
let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1;
// 获取认证对象
let auth;
try {
auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel);
console.log("get auth instance success");
} catch (error) {
console.log("get auth instance failed" + error);
}
// 开始认证
const authParam = {
challenge: new Uint8Array([49, 49, 49, 49, 49, 49]),
authType: [userAuth.UserAuthType.PIN],
authTrustLevel: 10000,
};
const widgetParam = {
title: '请输入密码',
navigationButtonText: '返回',
windowMode: userAuth.WindowModeType.DIALOG_BOX,
};
let userAuthInstance;
try {
auth.start();
console.info("authV9 start auth success");
//获取认证对象
userAuthInstance = userIAM_userAuth.getUserAuthInstance(authParam, widgetParam);
console.log('get userAuth instance success');
//开始认证
userAuthInstance.start();
console.log('auth start success');
} catch (error) {
console.
info("authV9 start auth failed, error = " + error
);
console.
log('auth catch error: ' + JSON.stringify(error)
);
}
// 取消认证
try {
auth
.cancel();
console.
info("cancel auth success"
);
userAuthInstance
.cancel();
console.
log('auth cancel success'
);
} catch (error) {
console.
info("cancel auth failed, error = " + error
);
console.
log('auth catch error: ' + JSON.stringify(error)
);
}
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录