用戶認證
導入模塊
import userIAM_userAuth from '@ohos.userIAM.userAuth';
完整示例
// API version 6
import userIAM_userAuth from '@ohos.userIAM.userAuth';
export default {
startAuth() {
console.info("start auth");
let auth = userIAM_userAuth.getAuthenticator();
auth.execute("FACE_ONLY", "S2").then((code)= >{
console.info("auth success");
// 此處添加認證成功邏輯
}).catch((code)= >{
console.error("auth fail, code = " + code);
// 此處添加認證失敗邏輯
});
}
}
// API version 8
import userIAM_userAuth from '@ohos.userIAM.userAuth';
let auth = new userIAM_userAuth.UserAuth();
export default {
getVersion() {
console.info("start get version");
let version = this.auth.getVersion();
console.info("auth version = " + version);
},
startAuth() {
console.info("start auth");
this.auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, {
onResult: (result, extraInfo) = > {
try {
console.info("auth onResult result = " + result);
console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo));
if (result == 'SUCCESS') {
// 此處添加認證成功邏輯
} else {
// 此處添加認證失敗邏輯
}
} catch (e) {
console.info("auth onResult error = " + e);
}
},
onAcquireInfo: (module, acquire, extraInfo) = > {
try {
console.info("auth onAcquireInfo module = " + module);
console.info("auth onAcquireInfo acquire = " + acquire);
console.info("auth onAcquireInfo extraInfo = " + JSON.stringify(extraInfo));
} catch (e) {
console.info("auth onAcquireInfo error = " + e);
}
}
});
},
checkAuthSupport() {
console.info("start check auth support");
let checkCode = this.auth.getAvailableStatus(userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1);
if (checkCode == userIAM_userAuth.ResultCode.SUCCESS) {
console.info("check auth support success");
// 此處添加支持指定類型認證的邏輯
} else {
console.error("check auth support fail, code = " + checkCode);
// 此處添加不支持指定類型認證的邏輯
}
},
cancelAuth() {
console.info("start cancel auth");
// contextId通過auth接口獲取
let contextId = auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, {
onResult: (result, extraInfo) = > {
console.info("auth onResult result = " + result);
},
onAcquireInfo: (module, acquire, extraInfo) = > {
console.info("auth onAcquireInfo module = " + module);
}
});
let cancelCode = this.auth.cancel(contextId);
if (cancelCode == userIAM_userAuth.Result.SUCCESS) {
console.info("cancel auth success");
} else {
console.error("cancel auth fail");
}
}
}
userIAM_userAuth.getAuthenticator(deprecated)
getAuthenticator(): Authenticator
說明: 從 API Version 8 開始廢棄,建議使用[constructor]替代。
獲取Authenticator對象,用于執行用戶身份認證。
需要權限 :ohos.permission.ACCESS_BIOMETRIC
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
返回值:
類型 | 說明 |
---|---|
[Authenticator] | 認證器對象。 |
示例:
let authenticator = userIAM_userAuth.getAuthenticator();
Authenticator(deprecated)
說明: 從 API Version 8 開始廢棄,建議使用[UserAuth]替代。
認證器對象。
execute(deprecated)
execute(type: string, level: string, callback: AsyncCallback): void
說明: 從 API Version 8 開始廢棄,建議使用[auth]替代。
執行用戶認證,使用callback方式作為異步方法。
需要權限 :ohos.permission.ACCESS_BIOMETRIC
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 認證類型,當前只支持FACE_ONLY。 ALL為預留參數,當前版本暫不支持ALL類型的認證。 |
level | string | 是 | 安全級別,對應認證的安全級別,有效值為S1(最低)、S2、S3、S4(最高)。 具備3D人臉識別能力的設備支持S3及以下安全級別的認證。 具備2D人臉識別能力的設備支持S2及以下安全級別的認證。 |
callback | AsyncCallback | 否 | 回調函數。 |
callback返回值:
類型 | 說明 |
---|---|
number | 表示認證結果,參見[AuthenticationResult]。 |
示例:
authenticator.execute("FACE_ONLY", "S2", (code)= >{
if (code == userIAM_userAuth.AuthenticationResult.SUCCESS) {
console.info("auth success");
return;
}
console.error("auth fail, code = " + code);
})
execute(deprecated)
execute(type:string, level:string): Promise
說明: 從 API Version 8 開始廢棄,建議使用[auth]替代。
執行用戶認證,使用promise方式作為異步方法。
需要權限 :ohos.permission.ACCESS_BIOMETRIC
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 認證類型,當前只支持FACE_ONLY。 ALL為預留參數,當前版本暫不支持ALL類型的認證。 |
level | string | 是 | 安全級別,對應認證的安全級別,有效值為S1(最低)、S2、S3、S4(最高)。 具備3D人臉識別能力的設備支持S3及以下安全級別的認證。 具備2D人臉識別能力的設備支持S2及以下安全級別的認證。 |
返回值:
類型 | 說明 |
---|---|
Promise | 返回攜帶一個number的Promise。number 為認證結果,參見[AuthenticationResult]。 |
示例:
let authenticator = userIAM_userAuth.getAuthenticator();
authenticator.execute("FACE_ONLY", "S2").then((code)= >{
console.info("auth success");
}).catch((code)= >{
console.error("auth fail, code = " + code);
});
AuthenticationResult(deprecated)
說明: 從 API Version 8 開始廢棄,建議使用[ResultCode](替代。
表示認證結果的枚舉。
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
名稱 | 默認值 | 描述 |
---|---|---|
NO_SUPPORT | -1 | 設備不支持當前的認證方式。 |
SUCCESS | 0 | 認證成功。 |
COMPARE_FAILURE | 1 | 比對失敗。 |
CANCELED | 2 | 用戶取消認證。 |
TIMEOUT | 3 | 認證超時。 |
CAMERA_FAIL | 4 | 開啟相機失敗。 |
BUSY | 5 | 認證服務忙,請稍后重試。 |
INVALID_PARAMETERS | 6 | 認證參數無效。 |
LOCKED | 7 | 認證失敗次數過多,已鎖定。 |
NOT_ENROLLED | 8 | 未錄入認證憑據。 |
GENERAL_ERROR | 100 | 其他錯誤。 |
UserAuth8+
認證器的對象。
constructor8+
constructor()
表示獲取的認證器對象。
需要權限 :ohos.permission.ACCESS_BIOMETRIC
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
返回值:
類型 | 說明 |
---|---|
[UserAuth] | UserAuth認證器對象。 |
示例:
import userIAM_userAuth from '@ohos.userIAM.userAuth';
let auth = new userIAM_userAuth.UserAuth();
getVersion8+
getVersion() : number
表示獲取的認證器版本信息。
需要權限 :ohos.permission.ACCESS_BIOMETRIC
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
返回值:
類型 | 說明 |
---|---|
number | 獲取的認證器版本信息。 |
示例:
import userIAM_userAuth from '@ohos.userIAM.userAuth';
let auth = new userIAM_userAuth.UserAuth();
let version = auth.getVersion();
console.info("auth version = " + version);
getAvailableStatus8+
getAvailableStatus(authType : UserAuthType, authTrustLevel : AuthTrustLevel) : number
表示檢查指定的認證等級的認證能力是否可用。
需要權限 :ohos.permission.ACCESS_BIOMETRIC
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
authType | [UserAuthType] | 是 | 認證類型,當前只支持FACE。 |
authTrustLevel | [AuthTrustLevel] | 是 | 認證結果的信任等級。 |
返回值:
類型 | 說明 |
---|---|
number | 獲取指定的認證等級的認證能力是否可用的檢查結果,返回值參見[ResultCode]。 |
示例:
import userIAM_userAuth from '@ohos.userIAM.userAuth';
let auth = new userIAM_userAuth.UserAuth();
let checkCode = auth.getAvailableStatus(userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1);
if (checkCode == userIAM_userAuth.ResultCode.SUCCESS) {
console.info("check auth support success");
// 此處添加支持指定類型認證的邏輯
} else {
console.error("check auth support fail, code = " + checkCode);
// 此處添加不支持指定類型認證的邏輯
}
auth8+
auth(challenge: Uint8Array, authType: UserAuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array
表示執行用戶認證,使用callback方式作為異步方法。
需要權限 :ohos.permission.ACCESS_BIOMETRIC
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
challenge | Uint8Array | 是 | 挑戰值,可以填null。 |
authType | [UserAuthType] | 是 | 認證類型,當前支持FACE。 |
authTrustLevel | [AuthTrustLevel] | 是 | 信任等級。 |
callback | [IUserAuthCallback] | 是 | 回調函數。 |
返回值:
類型 | 說明 |
---|---|
Uint8Array | ContextId,作為取消認證[cancelAuth]接口的入參。 |
示例:
import userIAM_userAuth from '@ohos.userIAM.userAuth';
let auth = new userIAM_userAuth.UserAuth();
auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, {
onResult: (result, extraInfo) = > {
try {
console.info("auth onResult result = " + result);
console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo));
if (result == userIAM_userAuth.ResultCode.SUCCESS) {
// 此處添加認證成功邏輯
} else {
// 此處添加認證失敗邏輯
}
} catch (e) {
console.info("auth onResult error = " + e);
}
}
});
cancelAuth8+
cancelAuth(contextID : Uint8Array) : number
表示通過contextID取消本次認證操作。
需要權限 :ohos.permission.ACCESS_BIOMETRIC
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
contextID | Uint8Array | 是 | 上下文ID信息,通過[auth]接口獲得。 |
返回值:
類型 | 說明 |
---|---|
number | 取消本次認證操作的結果。 |
示例:
import userIAM_userAuth from '@ohos.userIAM.userAuth';
// contextId可通過auth接口獲取,此處直接定義
let contextId = new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7]);
let cancelCode = auth.cancel(contextId);
if (cancelCode == userIAM_userAuth.ResultCode.SUCCESS) {
console.info("cancel auth success");
} else {
console.error("cancel auth fail");
}
IUserAuthCallback8+
認證過程中回調結果的對象。
onResult8+
onResult: (result : number, extraInfo : AuthResult) => void
表示在認證操作中,獲取認證結果。
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
result | number | 是 | 認證結果,參見[ResultCode]。 |
extraInfo | [AuthResult] | 是 | 擴展信息,不同情況下的具體信息, 如果身份驗證通過,則在extrainfo中返回用戶認證令牌, 如果身份驗證失敗,則在extrainfo中返回剩余的用戶認證次數, 如果身份驗證執行器被鎖定,則在extrainfo中返回凍結時間。 |
示例:
import userIAM_userAuth from '@ohos.userIAM.userAuth';
let auth = new userIAM_userAuth.UserAuth();
auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, {
onResult: (result, extraInfo) = > {
try {
console.info("auth onResult result = " + result);
console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo));
if (result == SUCCESS) {
// 此處添加認證成功邏輯
} else {
// 此處添加認證失敗邏輯
}
} catch (e) {
console.info("auth onResult error = " + e);
}
},
onAcquireInfo: (module, acquire, extraInfo) = > {
try {
console.info("auth onAcquireInfo module = " + module);
console.info("auth onAcquireInfo acquire = " + acquire);
console.info("auth onAcquireInfo extraInfo = " + JSON.stringify(extraInfo));
} catch (e) {
console.info("auth onAcquireInfo error = " + e);
}
}
});
onAcquireInfo8+
onAcquireInfo ?: (module : number, acquire : number, extraInfo : any) => void
表示在認證過程中,獲取提示碼信息,非必須實現。
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
module | number | 是 | 認證執行器的類型。 |
acquire | number | 是 | 認證執行器認證過程的交互信息。 |
extraInfo | any | 是 | 預留字段。 |
示例:
import userIAM_userAuth from '@ohos.userIAM.userAuth';
let auth = new userIAM_userAuth.UserAuth();
auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, {
onResult: (result, extraInfo) = > {
try {
console.info("auth onResult result = " + result);
console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo));
if (result == SUCCESS) {
// 此處添加認證成功邏輯
} else {
// 此處添加認證失敗邏輯
}
} catch (e) {
console.info("auth onResult error = " + e);
}
},
onAcquireInfo: (module, acquire, extraInfo) = > {
try {
console.info("auth onAcquireInfo module = " + module);
console.info("auth onAcquireInfo acquire = " + acquire);
console.info("auth onAcquireInfo extraInfo = " + JSON.stringify(extraInfo));
} catch (e) {
console.info("auth onAcquireInfo error = " + e);
}
}
});
AuthResult8+
表示認證結果的對象。
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
名稱 | 參數類型 | 必填 | 說明 |
---|---|---|---|
token | Uint8Array | 否 | 身份認證令牌。 |
remainTimes | number | 否 | 剩余的認證操作次數。 |
freezingTime | number | 否 | 認證操作的凍結時間。 |
ResultCode8+
表示執行結果的枚舉。
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
名稱 | 默認值 | 描述 |
---|---|---|
SUCCESS | 0 | 執行成功。 |
FAIL | 1 | 執行失敗。 |
GENERAL_ERROR | 2 | 操作通用錯誤。 |
CANCELED | 3 | 操作取消。 |
TIMEOUT | 4 | 操作超時。 |
TYPE_NOT_SUPPORT | 5 | 不支持的認證類型。 |
TRUST_LEVEL_NOT_SUPPORT | 6 | 不支持的認證等級。 |
BUSY | 7 | 忙碌狀態。 |
INVALID_PARAMETERS | 8 | 無效參數。 |
LOCKED | 9 | 認證器已鎖定。 |
NOT_ENROLLED | 10 | 用戶未錄入認證信息。 |
FaceTips8+
表示人臉認證過程中提示碼的枚舉。
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
名稱 | 默認值 | 描述 |
---|---|---|
FACE_AUTH_TIP_TOO_BRIGHT | 1 | 光線太強,獲取的圖像太亮。 |
FACE_AUTH_TIP_TOO_DARK | 2 | 光線太暗,獲取的圖像太暗。 |
FACE_AUTH_TIP_TOO_CLOSE | 3 | 人臉距離設備過近。 |
FACE_AUTH_TIP_TOO_FAR | 4 | 人臉距離設備過遠。 |
FACE_AUTH_TIP_TOO_HIGH | 5 | 設備太高,僅獲取到人臉上部。 |
FACE_AUTH_TIP_TOO_LOW | 6 | 設備太低,僅獲取到人臉下部。 |
FACE_AUTH_TIP_TOO_RIGHT | 7 | 設備太靠右,僅獲取到人臉右部。 |
FACE_AUTH_TIP_TOO_LEFT | 8 | 設備太靠左,僅獲取到人臉左部。 |
FACE_AUTH_TIP_TOO_MUCH_MOTION | 9 | 在圖像采集過程中,用戶人臉移動太快。 |
FACE_AUTH_TIP_POOR_GAZE | 10 | 沒有正視攝像頭。 |
FACE_AUTH_TIP_NOT_DETECTED | 11 | 沒有檢測到人臉信息。 |
FingerprintTips8+
表示指紋認證過程中提示碼的枚舉。
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
名稱 | 默認值 | 描述 |
---|---|---|
FINGERPRINT_AUTH_TIP_GOOD | 0 | 獲取的指紋圖像良好。 |
FINGERPRINT_AUTH_TIP_DIRTY | 1 | 由于傳感器上可疑或檢測到的污垢,指紋圖像噪音過大。 |
FINGERPRINT_AUTH_TIP_INSUFFICIENT | 2 | 由于檢測到的情況,指紋圖像噪聲太大,無法處理。 |
FINGERPRINT_AUTH_TIP_PARTIAL | 3 | 僅檢測到部分指紋圖像。 |
FINGERPRINT_AUTH_TIP_TOO_FAST | 4 | 快速移動,指紋圖像不完整。 |
FINGERPRINT_AUTH_TIP_TOO_SLOW | 5 | 缺少運動,指紋圖像無法讀取。 |
UserAuthType8+
表示身份認證的憑據類型枚舉。
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
名稱 | 默認值 | 描述 |
---|---|---|
FACE | 2 | 人臉認證。 |
FINGERPRINT | 4 | 指紋認證。 |
AuthTrustLevel8+
表示認證結果的信任等級枚舉。
系統能力 :以下各項對應的系統能力均為SystemCapability.UserIAM.UserAuth.Core
名稱 | 默認值 | 描述 |
---|---|---|
ATL1 | 10000 | 認證結果的信任等級級別1。 |
ATL2 | 20000 | 認證結果的信任等級級別2。 |
ATL3 | 30000 | 認證結果的信任等級級別3。 |
ATL4 | 40000 | 認證結果的信任等級級別4。 |
審核編輯 黃宇
-
接口
+關注
關注
33文章
8691瀏覽量
151817 -
鴻蒙
+關注
關注
57文章
2392瀏覽量
43030
發布評論請先 登錄
相關推薦
評論