1# 认证域账号(仅对系统应用开放) 2 3当需要验证域账号身份(比如屏幕解锁、登录会话失效等场景)时,可以使用系统提供的接口对域账号进行身份认证。 4 5## 开发准备 6 7导入系统账号模块。 8 9```ts 10import { osAccount } from '@kit.BasicServicesKit'; 11``` 12 13## 使用密码认证域账号 14 15用户可以使用密码认证域账号。开发者可以使用[auth](../../reference/apis-basic-services-kit/js-apis-osAccount-sys.md#auth10)接口完成此操作。此外使用该接口,应用还需要申请ohos.permission.ACCESS_USER_AUTH_INTERNAL权限。 16 17具体开发实例如下: 18 191. 申请权限:ohos.permission.ACCESS_USER_AUTH_INTERNAL。申请流程请参考:[申请应用权限](../../security/AccessToken/determine-application-mode.md#system_basic等级应用申请权限的方式)。 20 212. 获取用户输入,包括域账号信息和域账号密码。 22 23 ```ts 24 let domainAccountInfo: osAccount.DomainAccountInfo = { 25 domain: 'CHINA', 26 accountName: 'zhangsan' 27 } 28 let credential: Uint8Array = new Uint8Array([0]); 29 ``` 30 313. 定义认证结果回调。 32 33 ```ts 34 let callback: osAccount.IUserAuthCallback = { 35 onResult: (resultCode: number, authResult: osAccount.AuthResult) => { 36 console.log('auth resultCode = ' + resultCode); 37 console.log('auth authResult = ' + JSON.stringify(authResult)); 38 } 39 } 40 ``` 41 424. 调用[auth](../../reference/apis-basic-services-kit/js-apis-osAccount-sys.md#auth10)接口进行密码认证。 43 44 ```ts 45 try { 46 osAccount.DomainAccountManager.auth(domainAccountInfo, credential, callback); 47 } catch (err) { 48 console.log('auth exception = ' + JSON.stringify(err)); 49 } 50 ``` 51 52## 弹窗认证域账号 53 54在无法获取用户密码的情况下,需要认证域账号时,可以请求系统弹窗验证域账号用户。开发者可以使用[authWithPopup](../../reference/apis-basic-services-kit/js-apis-osAccount-sys.md#authwithpopup10)完成此操作。 55 56具体开发实例如下: 57 581. 定义认证结果回调对象。 59 60 ```ts 61 let callback: osAccount.IUserAuthCallback = { 62 onResult: (resultCode: number, authResult: osAccount.AuthResult) => { 63 console.log('authWithPopup resultCode = ' + resultCode); 64 console.log('authWithPopup authResult = ' + JSON.stringify(authResult)); 65 } 66 } 67 ``` 68 692. 调用[authWithPopup](../../reference/apis-basic-services-kit/js-apis-osAccount-sys.md#authwithpopup10)接口弹窗认证当前域账号。 70 71 ```ts 72 try { 73 osAccount.DomainAccountManager.authWithPopup(callback) 74 } catch (err) { 75 console.log('authWithPopup exception = ' + JSON.stringify(err)); 76 } 77 ``` 78