10 Star 16 Fork 211

OpenHarmony / account_os_account

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

帐号子系统

简介

在标准系统上,帐号子系统主要提供系统帐号生命周期管理,分布式帐号登录状态管理和应用帐号添加删除等基础管理能力。

架构图

图 1 帐号子系统架构图

目录

/base/account/os_account
├── dfx                      
│   ├── hidumper_adapter     系统服务信息导出适配器代码          
│   ├── hisysevent_adapter   系统事件打点适配器代码          
├── figures                  README图片
├── frameworks               帐号子系统kit代码
│   ├── account_iam          帐号身份认证和访问管理内部API代码
│   │   └── src              帐号身份认证和访问管理内部API实现代码
│   │   └── test             帐号身份认证和访问管理测试代码           
│   ├── appaccount           应用帐号内部API代码
│   │   └── native           应用帐号内部API实现代码
│   ├── common               共通模块代码
│   │   ├── account_error    错误码
│   │   ├── database         数据库基础代码
│   │   ├── file_operator    文件操作代码
│   │   ├── log              打印日志代码
│   │   ├── perf_stat        性能统计
│   │   └── test             共通模块测试代码
│   ├── domain_account       域帐号内部API实现代码
│   │   ├── include          域帐号内部API头文件
│   │   ├── src              域帐号内部API实现代码
│   │   └── test             域帐号内部API测试代码
│   ├── ohosaccount          分布式帐号内部API代码
│   │   ├── native           分布式帐号内部API实现代码
│   │   └── test             分布式帐号内部API测试代码
│   └── osaccount            系统帐号内部API代码
│       ├── core             系统帐号ipc
│       └── native           系统帐号内部API实现代码
├── interfaces               帐号子系统对外公开的API
│   ├── innerkits            内部API头文件
│   │   ├── account_iam      帐号身份认证和访问管理
│   │   ├── appaccount       应用帐号内部API头文件
│   │   ├── domain_account   域帐号内部API头文件
│   │   ├── ohosaccount      分布式帐号内部API头文件
│   │   └── osaccount        系统帐号内部API头文件
│   └── kits                 对外API封装
│       └── napi             帐号子系统对外API封装代码
├── sa_profile               帐号子系统SA配置文件定义目录
├── services                 帐号子系统accountmgr服务代码
│   └── accountmgr           帐号子系统服务代码
│       ├── include          帐号子系统服务代码头文件
│       ├── src              帐号子系统服务代码源文件
│       └── test             帐号子系统服务测试
├── test                     测试代码
│   ├── fuzztest             模糊测试代码
│   ├── resource             测试资源文件
│   └── systemtest           系统测试代码
└── tools                    acm工具代码
    ├── acm                  acm工具代码
    │   ├── include          acm工具代码头文件
    │   └── src              acm工具代码源文件
    └── test                 acm工具测试代码

说明

接口说明

1,分布式帐号

分布式帐号的功能主要包括查询和更新帐号登录状态,仅支持系统应用。

表 1 分布式帐号模块说明

模块名

描述

distributedAccount

提供分布式帐号模块管理方法

表 2 分布式帐号类说明

类名

描述

DistributedAccountAbility

提供查询和更新系统绑定的分布式帐号信息方法。

DistributedInfo

提供分布式帐号信息,包括分布式帐号ID、帐号名和登录状态,以及昵称、头像和自定义数据,可用于系统设备间认证、组网等场景。

表 3 分布式帐号模块方法说明

方法

描述。

function getDistributedAccountAbility(): DistributedAccountAbility

获取分布式帐号单实例对象。

表 4 DistributedAccountAbility方法说明

方法

描述

queryOsAccountDistributedInfo(callback: AsyncCallback<DistributedInfo>): void;
queryOsAccountDistributedInfo(): Promise<DistributedInfo>;

查询当前系统帐号的分布式信息。

getOsAccountDistributedInfo(callback: AsyncCallback<DistributedInfo>): void;
getOsAccountDistributedInfo(): Promise<DistributedInfo>;

查询当前系统帐号的分布式信息。

getOsAccountDistributedInfoByLocalId(localId: number, callback: AsyncCallbackk<DistributedInfo>): void;
getOsAccountDistributedInfoByLocalId(localId: number): Promise<DistributedInfo>;

查询指定系统帐号的分布式信息。

updateOsAccountDistributedInfo(accountInfo: DistributedInfo, callback: AsyncCallback<void>): void;
updateOsAccountDistributedInfo(accountInfo: DistributedInfo): Promise<void>;

更新当前系统帐号的分布式信息。

setOsAccountDistributedInfo(accountInfo: DistributedInfo, callback: AsyncCallback<void>): void;
setOsAccountDistributedInfo(accountInfo: DistributedInfo): Promise<void>;

设置当前系统帐号的分布式信息。

setOsAccountDistributedInfoByLocalId(localId: number, distributedInfo: DistributedInfo, callback: AsyncCallback<void>): void;
setOsAccountDistributedInfoByLocalId(localId: number, distributedInfo: DistributedInfo): Promise<void>;

设置指定系统帐号的分布式信息。

2,应用帐号

应用帐号的主要功能包括应用帐号的添加、删除,查询,修改,授权等功能,提供帐号数据落盘和数据同步的能力。

表 1 应用帐号模块说明

模块名

描述

appAccount

提供应用帐号模块管理方法。

表 2 应用帐号类说明

类名

描述

AppAccountManager

提供添加、删除,查询,修改,授权等应用帐号相关方法。

AppAccountInfo

提供应用帐号信息,包括应用帐号名称,所属包名等。

OAuthTokenInfo

提供应用帐号OAuth令牌信息,包括令牌的鉴权类型和取值。

AuthenticatorInfo

提供应用帐号OAuth认证器信息,包括所属包名、图标标识、标签标识等。

AuthenticatorCallback

提供鉴权结果通知、鉴权请求跳转等应用帐号OAuth认证器回调方法。

Authenticator

提供隐式添加帐号、鉴权等应用帐号OAuth认证器方法。

Constants

提供键名、操作名等常量。

ResultCode

提供应用帐号接口返回码。

SelectAccountsOptions

提供选项用于选择帐号。

VerifyCredentialOptions

提供选项用于验证凭据。

SetPropertiesOptions

提供选项用于设置属性。

表 3 应用帐号模块方法说明

方法

描述

function createAppAccountManager(): AppAccountManager

获取应用帐号单实例对象。

表 4 AppAccountManager方法说明

方法

描述

addAccount(name: string, callback: AsyncCallback<void>): void;
addAccount(name: string, extraInfo: string, callback: AsyncCallback<void>): void;
addAccount(name: string, extraInfo?: string): Promise<void>;

添加应用帐号。

addAccountImplicitly(owner: string, authType: string, options: {[key: string]: any}, callback: AuthenticatorCallback): void;

隐式添加应用帐号。

deleteAccount(name: string, callback: AsyncCallback<void>): void;
disableAppAccess(name: string, bundleName: string, callback: AsyncCallback<void>): void;
deleteAccount(name: string): Promise<void>;

删除应用帐号。

enableAppAccess(name: string, bundleName: string, callback: AsyncCallback<void>): void;
enableAppAccess(name: string, bundleName: string): Promise<void>;

应用帐号信息访问授权。

disableAppAccess(name: string, bundleName: string, callback: AsyncCallback<void>): void;
disableAppAccess(name: string, bundleName: string): Promise<void>;

应用帐号信息访问取消授权。

checkAppAccess(name: string, bundleName: string, callback: AsyncCallback>boolean>): void;
checkAppAccess(name: string, bundleName: string): Promise>boolean>;

检查应用帐号信息访问授权。

checkAppAccountSyncEnable(name: string, callback: AsyncCallback<boolean>): void;
checkAppAccountSyncEnable(name: string): Promise<boolean>;

检查应用帐号同步状态。

setAccountCredential(name: string, credentialType: string, credential: string, callback: AsyncCallback<void>): void;
setAccountCredential(name: string, credentialType: string, credential: string): Promise<void>;

设置应用帐号认证信息。

deleteAccountCredential(name: string, credentialType: string, callback: AsyncCallback<void>): void;
deleteAccountCredential(name: string, credentialType: string): Promise<void>;

删除应用帐号认证信息。

setAccountExtraInfo(name: string, extraInfo: string, callback: AsyncCallback<void>): void;
setAccountExtraInfo(name: string, extraInfo: string): Promise<void>;

设置应用帐号附加信息。

setAppAccountSyncEnable(name: string, isEnable: boolean, callback: AsyncCallback<void>): void;
setAppAccountSyncEnable(name: string, isEnable: boolean): Promise<void>;

设置应用帐号同步状态。

setAssociatedData(name: string, key: string, value: string, callback: AsyncCallback<void>): void;
setAssociatedData(name: string, key: string, value: string): Promise<void>;

设置应用帐号关联数据。

getAllAccounts(owner: string, callback: AsyncCallback<Array<AppAccountInfo>>): void;
getAllAccounts(owner: string): Promise<Array<AppAccountInfo>>;

查询指定包名下应用帐号信息。

getAllAccessibleAccounts(callback: AsyncCallback<Array<AppAccountInfo>>): void;
getAllAccessibleAccounts(): Promise<Array<AppAccountInfo>>;

查询指定包名下应用帐号信息。

getAccountCredential(name: string, credentialType: string, callback: AsyncCallback<string>): void;
getAccountCredential(name: string, credentialType: string): Promise<string>;

查询应用帐号认证信息。

getAccountExtraInfo(name: string, callback: AsyncCallback<string>): void;
getAccountExtraInfo(name: string): Promise<string>;

查询应用帐号附加信息。

getAssociatedData(name: string, key: string, callback: AsyncCallback<string>): void;
getAssociatedData(name: string, key: string): Promise<string>;

查询应用帐号关联信息。

getAssociatedDataSync(name: string, key: string): string;

同步获取与指定帐户关联的数据。

on(type: 'change', owners: Array<string>, callback: Callback<Array<AppAccountInfo>>): void;

订阅应用帐号信息变化。

off(type: 'change', callback?: Callback<void>): void;

取消订阅应用帐号信息变化。

authenticate(name: string, owner: string, authType: string, options: {[key: string]: any}, callback: AuthenticatorCallback): void;

鉴权应用帐号以获取OAuth令牌。

getOAuthToken(name: string, owner: string, authType: string, callback: AsyncCallback<string>): void;
getOAuthToken(name: string, owner: string, authType: string): Promise<string>;

查询应用帐号OAuth令牌。

setOAuthToken(name: string, authType: string, token: string, callback: AsyncCallback<void>): void;
setOAuthToken(name: string, authType: string, token: string): Promise<void>;

设置应用帐号OAuth令牌。

deleteOAuthToken(name: string, owner: string, authType: string, token: string, callback: AsyncCallback<void>): void;
deleteOAuthToken(name: string, owner: string, authType: string, token: string): Promise<void>;

删除应用帐号OAuth令牌。

setOAuthTokenVisibility(name: string, authType: string, bundleName: string, isVisible: boolean, callback: AsyncCallback<void>): void;
setOAuthTokenVisibility(name: string, authType: string, bundleName: string, isVisible: boolean): Promise<void>;

设置应用帐号OAuth令牌的可见性。

checkOAuthTokenVisibility(name: string, authType: string, bundleName: string, callback: AsyncCallback<boolean>): void;
checkOAuthTokenVisibility(name: string, authType: string, bundleName: string): Promise<boolean>;

检查应用帐号OAuth令牌的可见性。

getAllOAuthTokens(name: string, owner: string, callback: AsyncCallback<Array<OAuthTokenInfo>>): void;
getAllOAuthTokens(name: string, owner: string): Promise<Array<OAuthTokenInfo>>;

查询所有可见的应用帐号OAuth令牌。

getOAuthList(name: string, authType: string, callback: AsyncCallback<Array<string>>): void;
getOAuthList(name: string, authType: string): Promise<Array<string>>;

查询应用帐号OAuth令牌的授权列表。

getAuthenticatorCallback(sessionId: string, callback: AsyncCallback<AuthenticatorCallback>): void;
getAuthenticatorCallback(sessionId: string): Promise<AuthenticatorCallback>;

查询应用帐号OAuth认证器回调。

getAuthenticatorInfo(owner: string, callback: AsyncCallback<AuthenticatorInfo>): void;
getAuthenticatorInfo(owner: string): Promise<AuthenticatorInfo>;

查询应用帐号OAuth认证器信息。

checkAccountLabels(name: string, owner: string, labels: Array<string>, callback: AsyncCallback<boolean>): void;
checkAccountLabels(name: string, owner: string, labels: Array<string>): Promise<boolean>;

检查帐号标签。

selectAccountsByOptions(options: SelectAccountsOptions, callback: AsyncCallback<Array<AppAccountInfo>>);
selectAccountsByOptions(options: SelectAccountsOptions): Promise<Array<AppAccountInfo>>;

根据选项选择帐号。

verifyCredential(name: string, owner: string, callback: AuthenticatorCallback): void;
verifyCredential(name: string, owner: string, options: VerifyCredentialOptions, callback: AuthenticatorCallback): void;

根据选项验证凭据。

setAuthenticatorProperties(owner: string, callback: AuthenticatorCallback): void;
setAuthenticatorProperties(owner: string, options: SetPropertiesOptions, callback: AuthenticatorCallback): void;

设置认证器属性。

表 5 AuthenticatorCallback方法说明

方法

描述

onResult: (code: number, result: {[key: string]: any}) => void;

向客户端通知认证结果。

onRequestRedirected: (request: Want) => void;

通知客户端需要重定向身份验证请求。

onRequestContinued?: () => void;

通知客户端请求继续。

表 6 Authenticator方法说明

方法

描述

addAccountImplicitly(authType: string, callerBundleName: string, options: {[key: string]: any}, callback: AuthenticatorCallback): void;

隐式添加应用帐号。

authenticate(name: string, authType: string, callerBundleName: string, options: {[key: string]: any}, callback: AuthenticatorCallback): void;

鉴权应用帐号以获取OAuth令牌。

verifyCredential(name: string, options: VerifyCredentialOptions, callback: AuthenticatorCallback): void;

根据选项验证凭据。

setProperties(options: SetPropertiesOptions, callback: AuthenticatorCallback): void;

设置验证器的属性。

checkAccountLabels(name: string, labels: Array, callback: AuthenticatorCallback): void;

检查帐号标签。

isAccountRemovable(name: string, callback: AuthenticatorCallback): void;

检查是否可以删除指定的帐户。

getRemoteObject(): rpc.RemoteObject;

获取远程过程调用的身份验证程序的远程对象。

3,系统帐号

系统帐号的主要功能包括系统帐号的添加、删除,查询,设置,订阅,启动等功能,提供系统帐号数据落盘的能力。

表 1 系统帐号模块说明

模块名

描述

osAccount

提供系统帐号模块管理方法。

表 2 系统帐号类说明

类名

描述

AccountManager

提供添加、删除,查询,设置,订阅,启动系统帐号等相关方法。

UserAuth

提供构造、获取版本号、获取有效状态、获取属性、设置属性、认证、用户认证和取消认证方法。

PINAuth

提供PIN码输入器的构造、注册和卸载的方法。

InputerManager

提供认证凭据输入器注册和卸载的方法。

UserIdentityManager

提供构造、打开会话、添加凭据、更新凭据、关闭会话、取消条目、删除用户、删除凭证和获取认证信息方法。

IInputData

提供密码数据回调。

IInputer

提供密码输入框回调。

IUserAuthCallback

提供用户认证回调。

IIdmCallback

提供身份管理回调。

GetPropertyRequest

提供获取属性请求的信息,包括身份验证凭据类型和要获取的属性类型数组。

SetPropertyRequest

提供设置属性请求的信息,包括身份验证凭据类型、指示要设置的属性类型和指示要设置的信息。

ExecutorProperty

提供执行器的属性,包括结果、认证凭据子类型、剩余时间和冻结时间。

AuthResult

提供认证结果的信息,包括认证令牌、剩余时间和冻结时间。

CredentialInfo

提供凭证信息,包括认证凭据类型、认证凭据子类型和认证令牌。

RequestResult

提供请求结果的信息,包括凭据索引。

EnrolledCredInfo

提供已注册凭据的信息,包括凭据索引、认证凭据类型、认证凭据子类型和凭据模板ID。

GetPropertyType

提供要获取的属性类型,包括认证子类型、剩余时间和冻结时间。

SetPropertyType

提供要设置的属性类型,为初始化算法。

AuthType

提供身份验证的凭据类型,包括PIN认证类型和面部认证类型。

AuthSubType

提供用于认证的凭据子类型,包括5位凭证、自定义数字凭证、自定义混合凭证、2D面容凭证和3D面容凭证类型。

AuthTrustLevel

提供认证结果的受信任级别,包括等级1至等级4。

Module

提供获取信息的模块。

ResultCode

提供身份验证的结果代码。

FaceTipsCode

提供人脸验证过程中的提示代码。

FingerprintTips8

提供指纹身份验证过程中的提示代码。

OsAccountInfo

提供系统帐号信息,包括系统帐号名称,ID等属性。

DomainAccountInfo

提供域帐号信息,包括域名,域帐号名等属性。

OsAccountType

提供系统帐号类型,包括管理员,普通,访客等类型。

ConstraintSourceType

系统帐号约束来源类型,包括约束不存在,约束来自系统,约束来自设备所有者以及约束来自资料所有者。

ConstraintSourceTypeInfo

提供系统帐号约束来源信息,包括设置约束的系统帐号ID和约束来源类型。

GetDomainAccessTokenOptions

提供获取域访问令牌的选项。

DomainPlugin

提供域帐号认证、合法性检查、绑定、解绑和域访问令牌查询等插件接口。

DomainAccountManager

提供域插件管理、域帐号认证和合法性检查等接口。

表 3 系统帐号模块方法说明

方法

描述

function getAccountManager(): AccountManager

获取系统帐号单实例对象。

表 4 AccountManager方法说明

方法

描述

activateOsAccount(localId: number, callback: AsyncCallback<void>): void;
activateOsAccount(localId: number): Promise<void>;

激活指定系统帐号。

isMultiOsAccountEnable(callback: AsyncCallback<boolean>): void;
isMultiOsAccountEnable(): Promise<boolean>;

判断是否支持多系统帐号。

isOsAccountActived(localId: number, callback: AsyncCallback<boolean>): void;
isOsAccountActived(localId: number): Promise<boolean>;

判断指定系统帐号是否处于激活状态。

isOsAccountConstraintEnable(localId: number, constraint: string, callback: AsyncCallback<boolean>): void;
isOsAccountConstraintEnable(localId: number, constraint: string): Promise<boolean>;

判断指定系统帐号是否具有指定约束。

isTestOsAccount(callback: AsyncCallback<boolean>): void;
isTestOsAccount(): Promise<boolean>;

检查当前系统帐号是否为测试帐号。

isOsAccountVerified(callback: AsyncCallback<boolean>): void;
isOsAccountVerified(localId: number, callback: AsyncCallback<boolean>): void;

检查当前系统帐号是否已验证。

isOsAccountVerified(localId?: number): Promise<boolean>;

检查指定系统帐号是否已验证。

removeOsAccount(localId: number, callback: AsyncCallback<void>): void;
removeOsAccount(localId: number): Promise<void>;

删除指定系统帐号。

setOsAccountConstraints(localId: number, constraints: Array<string>, enable: boolean, callback: AsyncCallback<void>): void;
setOsAccountConstraints(localId: number, constraints: Array<string>, enable: boolean): Promise<void>;

为指定系统帐号设置/删除约束。

setOsAccountName(localId: number, localName: string, callback: AsyncCallback<void>): void;
setOsAccountName(localId: number, localName: string): Promise<void>;

设置指定系统帐号的帐号名。

getCreatedOsAccountsCount(callback: AsyncCallback<number>): void;
getCreatedOsAccountsCount(): Promise<number>;

获取已创建的系统帐号数量。

getOsAccountLocalIdFromProcess(callback: AsyncCallback<number>): void;
getOsAccountLocalIdFromProcess(): Promise<number>;

获取当前进程所属的系统帐号的帐号ID。

getOsAccountLocalIdFromUid(uid: number, callback: AsyncCallback<number>): void;
getOsAccountLocalIdFromUid(uid: number): Promise<number>;

从进程uid中获取该uid所属的系统帐号的帐号ID。

getOsAccountLocalIdFromDomain(domainInfo: DomainAccountInfo, callback: AsyncCallback<number>): void;
getOsAccountLocalIdFromDomain(domainInfo: DomainAccountInfo): Promise<number>;

根据域帐号信息,获取与其关联的系统帐号的帐号ID。

queryMaxOsAccountNumber(callback: AsyncCallback<number>): void;
queryMaxOsAccountNumber(): Promise<number>;

查询允许创建的系统帐号的最大数量。

getOsAccountAllConstraints(localId: number, callback: AsyncCallback<Array<string>>): void;
getOsAccountAllConstraints(localId: number): Promise<Array<string>>;

获取指定系统帐号的全部约束。

queryAllCreatedOsAccounts(callback: AsyncCallback<Array<OsAccountInfo>>): void;
queryAllCreatedOsAccounts(): Promise<Array<OsAccountInfo>>;

查询已创建的所有系统帐号的信息列表。

queryActivatedOsAccountIds(callback: AsyncCallback<Array<number>>): void;
queryActivatedOsAccountIds(): Promise<Array<number>>;

查询当前处于激活状态的系统帐号的ID列表。

createOsAccount(localName: string, type: OsAccountType, callback: AsyncCallback<OsAccountInfo>): void;
createOsAccount(localName: string, type: OsAccountType): Promise<OsAccountInfo>;

创建一个系统帐号。

createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo, callback: AsyncCallback<OsAccountInfo>): void;
createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo): Promise<OsAccountInfo>;

根据域帐号信息,创建一个系统帐号并将其与域帐号关联。

queryCurrentOsAccount(callback: AsyncCallback<OsAccountInfo>): void;
queryCurrentOsAccount(): Promise<OsAccountInfo>;

查询当前进程所属的系统帐号的信息。

queryOsAccountById(localId: number, callback: AsyncCallback<OsAccountInfo>): void;
queryOsAccountById(localId: number): Promise<OsAccountInfo>;

查询指定系统帐号的信息。

getOsAccountTypeFromProcess(callback: AsyncCallback<OsAccountType>): void;
getOsAccountTypeFromProcess(): Promise<OsAccountType>;

查询当前进程所属的系统帐号的帐号类型。

getDistributedVirtualDeviceId(callback: AsyncCallback<string>): void;
getDistributedVirtualDeviceId(): Promise<string>;

获取分布式虚拟设备ID。

getOsAccountProfilePhoto(localId: number, callback: AsyncCallback<string>): void;
getOsAccountProfilePhoto(localId: number): Promise<string>;

获取指定系统帐号的头像信息。

setOsAccountProfilePhoto(localId: number, photo: string, callback: AsyncCallback<void>): void;
setOsAccountProfilePhoto(localId: number, photo: string): Promise<void>;

为指定系统帐号设置头像信息。

getOsAccountLocalIdBySerialNumber(serialNumber: number, callback: AsyncCallback<number>): void;
getOsAccountLocalIdBySerialNumber(serialNumber: number): Promise<number>;

通过SN码查询与其关联的系统帐号的帐号ID。

getSerialNumberByOsAccountLocalId(localId: number, callback: AsyncCallback<number>): void;
getSerialNumberByOsAccountLocalId(localId: number): Promise<number>;

通过系统帐号ID获取与该系统帐号关联的SN码。

on(type: 'activate' | 'activating', name: string, callback: Callback<number>): void;

订阅系统帐号的变动信息。

off(type: 'activate' | 'activating', name: string, callback?: Callback<number>): void;

取消订阅系统帐号的变动信息。

getBundleIdFromUid(uid: number, callback: AsyncCallback<number>): void;
getBundleIdFromUid(uid: number): Promise<number>;

通过uid获取对应bundleId。

isMainOsAccount(callback: AsyncCallback<boolean>): void;
isMainOsAccount(): Promise<boolean>;

判断当前进程是否处于主用户。

queryOsAccountConstraintSourceTypes(localId: number, constraint: string, callback: AsyncCallback<Array<ConstraintSourceTypeInfo>>): void;
queryOsAccountConstraintSourceTypes(localId: number, constraint: string): Promise<Array<ConstraintSourceTypeInfo>>;

查询指定系统帐号的指定约束的来源信息。

表 5 UserAuth方法说明

方法

描述

constructor();

创建用户认证的实例。

getVersion(): number;

返回版本信息。

getAvailableStatus(authType: AuthType, authTrustLevel: AuthTrustLevel): number;

检查身份认证功能是否可用。

getProperty(request: GetPropertyRequest, callback: AsyncCallback<ExecutorProperty>): void;
getProperty(request: GetPropertyRequest): Promise;

基于指定的请求信息获取属性,使用回调异步返回结果。

setProperty(request: SetPropertyRequest, callback: AsyncCallback): void;
setProperty(request: SetPropertyRequest): Promise;

设置可用于初始化算法的属性,使用回调异步返回结果。

auth(challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array;

执行认证,使用callback回调异步返回结果。

authUser(userId: number, challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array;

执行用户认证,使用callback回调异步返回结果。

cancelAuth(contextID: Uint8Array): number;

取消特定的认证。

表 6 PINAuth方法说明

方法

描述

constructor();

创建Pin码认证的实例。

registerInputer(inputer: IInputer): void;

注册Pin码输入器。

unregisterInputer(): void;

卸载Pin码输入器。

表 7 InputerManager方法说明

方法

描述

registerInputer(authType: AuthType, inputer: IInputer): void;

注册认证凭据输入器。

unregisterInputer(authType: AuthType): void;

卸载认证凭据输入器。

表 8 UserIdentityManager方法说明

方法

描述

constructor();

创建用户身份管理的实例。

openSession(callback: AsyncCallback<Uint8Array>): void;
openSession(): Promise;

打开会话,启动IDM操作以获取挑战值,使用回调异步返回结果。

addCredential(credentialInfo: CredentialInfo, callback: IIdmCallback): void;

添加凭据,添加用户凭据信息,传入凭据添加方法和凭据信息(凭据类型,子类,如果添加用户的非密码凭据,则传入密码身份验证令牌),并获取结果/获取信息,使用callback回调异步返回结果。

updateCredential(credentialInfo: CredentialInfo, callback: IIdmCallback): void;

更新凭据,使用callback回调异步返回结果。

closeSession(): void;

关闭会话,结束IDM操作。

cancel(challenge: Uint8Array): number;

根据挑战值取消条目。

delUser(token: Uint8Array, callback: IIdmCallback): void;

删除具有身份验证令牌的用户,使用callback方式异步返回结果。

delCred(credentialId: Uint8Array, token: Uint8Array, callback: IIdmCallback): void;

删除用户凭据信息,使用callback方式异步返回结果。

getAuthInfo(callback: AsyncCallback<Array<EnrolledCredInfo>>): void;
getAuthInfo(authType: AuthType, callback: AsyncCallback<Array<EnrolledCredInfo>>): void;
getAuthInfo(authType?: AuthType): Promise<Array<EnrolledCredInfo>>;

获取认证信息,使用回调异步返回结果。

表 9 IInputData方法说明

方法

描述

onSetData: (pinSubType: AuthSubType, data: Uint8Array) => void;

通知设置数据。

表 10 IInputer方法说明

方法

描述

onGetData: (callback: IInputData) => void;

通知获取数据。

表 11 IUserAuthCallback方法说明

方法

描述

onResult: (result: number, extraInfo: AuthResult) => void;

用户身份认证结果代码通过回调返回,可能包含令牌,剩余时间和冻结时间3种信息值。

onAcquireInfo?: (module: number, acquire: number, extraInfo: any) => void;

在身份验证期间,TipsCode值通过回调返回,TipsCode为人脸认证过程中的提示码。

表 12 IIdmCallback方法说明

方法

描述

onResult: (result: number, extraInfo: AuthResult) => void;

身份管理结果代码通过回调返回,可能包含凭证索引。

onAcquireInfo?: (module: number, acquire: number, extraInfo: any) => void;

在身份验证期间,TipsCode通过回调返回,TipsCode为人脸认证过程中的提示码。

表 13 DomainPlugin方法说明

方法

描述

auth(domainAccountInfo: DomainAccountInfo, credential: Uint8Array, callback: IUserAuthCallback): void;

使用凭据认证指定的域帐号。

authWithPopup(domainAccountInfo: DomainAccountInfo, callback: IUserAuthCallback): void;

弹窗认证指定的域帐号。

authWithToken(domainAccountInfo: DomainAccountInfo, token: Uint8Array, callback: IUserAuthCallback): void;

使用本地身份认证令牌关联认证指定的域帐号。

getAccountInfo(domain: string, accountName: string, callback: AsyncCallback): void;

根据域和帐号名获取域帐号信息。

getAuthStatusInfo(domainAccountInfo: DomainAccountInfo, callback: AsyncCallback): void;

获取指定域帐号的认证状态信息。

bindAccount(domainAccountInfo: DomainAccountInfo, localId: number, callback: AsyncCallback): void;

绑定指定的域帐号。

bindAccount(domainAccountInfo: DomainAccountInfo, localId: number, callback: AsyncCallback): void;

解绑指定的域帐号。

isAccountTokenValid(domainAccountInfo: DomainAccountInfo, token: Uint8Array, callback: AsyncCallback): void;

判断指定域帐号的令牌是否有效。

getAccessToken(options: GetDomainAccessTokenOptions, callback: AsyncCallback): void;

获取指定域帐号的域访问令牌。

表 14 DomainAccountManager方法说明

方法

描述

static registerPlugin(plugin: DomainPlugin): void;

注册域插件。

static unregisterPlugin(): void;

解注册域插件。

static auth(domainAccountInfo: DomainAccountInfo, credential: Uint8Array, callback: IUserAuthCallback): void;

使用凭据认证指定的域帐号。

static authWithPopup(callback: IUserAuthCallback): void;

弹窗认证当前系统帐号绑定的域帐号。

static authWithPopup(localId: number, callback: IUserAuthCallback): void;

弹窗认证指定系统帐号绑定的域帐号。

static hasAccount(domainAccountInfo: DomainAccountInfo, callback: AsyncCallback): void;

判断指定的域帐号是否存在。

static updateAccountToken(domainAccountInfo: DomainAccountInfo, token: Uint8Array, callback: AsyncCallback): void;

更新指定域帐号的令牌。

相关仓

帐号子系统

account_os_account

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS

简介

Allowing apps to use OS account-related functions | 允许您的应用程序使用操作系统帐号相关功能 展开 收起
C++ 等 2 种语言
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/openharmony/account_os_account.git
git@gitee.com:openharmony/account_os_account.git
openharmony
account_os_account
account_os_account
master

搜索帮助