1 Star 0 Fork 213

帅煜韬 / account_os_account

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

帐号子系统

简介

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

架构图

图 1 帐号子系统架构图

目录

/base/account/os_account
├── figures                  README图片
├── frameworks               帐号子系统kit代码
│   ├── appaccount           应用帐号内部API代码
│   │   └── native           应用帐号内部API实现代码
│   ├── common               共通模块代码
│   │   ├── account_error    错误码
│   │   ├── database         数据库基础代码
│   │   ├── log              打印日志代码
│   │   ├── perf_stat        性能统计
│   │   └── test             共通模块测试代码
│   ├── ohosaccount          分布式帐号内部API代码
│   │   ├── native           分布式帐号内部API实现代码
│   │   └── test             分布式帐号内部API测试代码
│   └── osaccount            系统帐号内部API代码
│       ├── core             系统帐号ipc
│       └── native           系统帐号内部API实现代码
├── interfaces               帐号子系统对外公开的API
│   ├── innerkits            内部API头文件
│   │   ├── appaccount       应用帐号内部API头文件
│   │   ├── ohosaccount      分布式帐号内部API头文件
│   │   └── osaccount        系统帐号内部API头文件
│   └── kits                 对外API封装
│       └── napi             帐号子系统对外API封装代码
├── sa_profile               帐号子系统SA配置文件定义目录
├── services                 帐号子系统accountmgr服务代码
│   └── accountmgr           帐号子系统服务代码
│       ├── include          帐号子系统服务代码头文件
│       ├── src              帐号子系统服务代码源文件
│       └── test             帐号子系统服务测试
├── test                     测试代码
│   ├── resource             测试资源文件
│   └── systemtest           系统测试代码
└── tools                    acm工具代码
    ├── acm                  acm工具代码
    │   ├── include          acm工具代码头文件
    │   └── src              acm工具代码源文件
    └── test                 acm工具测试代码

说明

接口说明

1,分布式帐号

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

表 1 分布式帐号模块说明

模块名

描述

distributedAccount

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

表 2 分布式帐号类说明

类名

描述

DistributedAccountAbility

提供查询和更新分布式帐号登录状态方法

DistributedInfo

提供分布式帐号信息,主要包括帐号名、帐号UID和帐号登录状态。

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

方法

描述

function getDistributedAccountAbility(): DistributedAccountAbility

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

表 4 DistributedAccountAbility方法说明

方法

描述

queryOsAccountDistributedInfo(callback: AsyncCallback<DistributedInfo>): void

查询分布式帐号信息

queryOsAccountDistributedInfo(): Promise<DistributedInfo>

查询分布式帐号信息

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

更新分布式帐号信息

updateOsAccountDistributedInfo(accountInfo: DistributedInfo): Promise<boolean>

更新分布式帐号信息

2,应用帐号

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

表 1 应用帐号模块说明

模块名

描述

appAccount

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

表 2 应用帐号类说明

类名

描述

AppAccountManager

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

AppAccountInfo

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

OAuthTokenInfo

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

AuthenticatorInfo

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

AuthenticatorCallback

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

Authenticator

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

Constants

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

ResultCode

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

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

方法

描述

function createAppAccountManager(): AppAccountManager

获取应用帐号单实例对象

表 4 AppAccountManager方法说明

方法

描述

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

添加应用帐号

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

隐式添加应用帐号

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

删除应用帐号

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

应用帐号信息访问授权

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

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

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

检查应用帐号同步状态

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

设置应用帐号认证信息

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

设置应用帐号附加信息

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

设置应用帐号同步状态

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

设置应用帐号关联数据

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

查询授权过的应用帐号信息

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

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

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

查询应用帐号认证信息

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

查询应用帐号附加信息

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

查询应用帐号关联信息

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;

查询应用帐号OAuth令牌

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

设置应用帐号OAuth令牌

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

删除应用帐号OAuth令牌

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

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

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

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

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

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

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

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

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

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

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

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

3,系统帐号

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

表 1 系统帐号模块说明

模块名

描述

osAccount

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

表 2 系统帐号类说明

类名

描述

AccountManager

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

OsAccountInfo

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

DomainAccountInfo

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

OsAccountType

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

ConstraintSourceType

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

ConstraintSourceTypeInfo

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

表 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;

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

getOsAccountLocalIdFromProcess(): Promise<number>;

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

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

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

getOsAccountLocalIdFromUid(uid: number): Promise<number>;

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

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

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

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;

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

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;

获取分布式虚拟设备ID

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;

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

getOsAccountLocalIdBySerialNumber(serialNumber: number): Promise<number>;

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

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

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

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;

通过uid获取对应bundleId

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>>;

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

相关仓

帐号子系统

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 | 允许您的应用程序使用操作系统帐号相关功能 展开 收起
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

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

搜索帮助