/
/
API version
10
import
{ BusinessError }
from
'@kit.BasicServicesKit'
;
import
{ cryptoFramework }
from
'@kit.CryptoArchitectureKit'
;
import
{ userAuth }
from
'@kit.UserAuthenticationKit'
;
/
/
设置认证参数
let reuseUnlockResult: userAuth.ReuseUnlockResult
=
{
reuseMode: userAuth.ReuseMode.AUTH_TYPE_RELEVANT,
reuseDuration: userAuth.MAX_ALLOWABLE_REUSE_DURATION,
}
try
{
const rand
=
cryptoFramework.createRandom();
const
len
: number
=
16
;
const randData: Uint8Array
=
rand?.generateRandomSync(
len
)?.data;
const authParam: userAuth.AuthParam
=
{
challenge: randData,
authType: [userAuth.UserAuthType.FACE],
authTrustLevel: userAuth.AuthTrustLevel.ATL3,
reuseUnlockResult: reuseUnlockResult,
};
/
/
配置认证界面
const widgetParam: userAuth.WidgetParam
=
{
title:
'请进行身份认证'
,
};
/
/
获取认证对象
const userAuthInstance
=
userAuth.getUserAuthInstance(authParam, widgetParam);
console.info(
'get userAuth instance success'
);
/
/
订阅认证结果
userAuthInstance.on(
'result'
, {
onResult(result) {
console.info(`userAuthInstance callback result: ${JSON.stringify(result)}`);
/
/
可在认证结束或其他业务需要场景,取消订阅认证结果
userAuthInstance.off(
'result'
);
}
});
console.info(
'auth on success'
);
userAuthInstance.start();
console.info(
'auth start success'
);
} catch (error) {
const err: BusinessError
=
error as BusinessError;
console.error(`auth catch error. Code
is
${err?.code}, message
is
${err?.message}`);
}