OpenHarmony端云一体化应用开发快速入门练习(下)登出销户等 原创
一、登出
前提条件:需要在AGC控制台开通认证服务。需要先在您的应用中集成认证服务SDK。
开发步骤
当用户不再使用应用,或者需要使用其他帐号登录时,需要调用AGConnectAuth.signOut登出当前用户。用户一旦被登出,端侧的用户信息和Token将被清除。
agconnect.auth().signOut().then(() => {
//登出成功
}).catch(error => {
//登出失败
});
二、销户
前提条件:需要在AGC控制台开通认证服务。需要先在您的应用中集成认证服务SDK。
开发步骤
三、帐号重认证
前提条件:需要在AGC控制台开通认证服务。需要先在您的应用中集成认证服务SDK。
开发步骤
对于销户、修改密码、关联帐号以及重置手机帐号和邮箱帐号这些敏感操作,要求用户必须在5分钟内登录过应用才能执行。如果您执行敏感操作时已经登录超过5分钟,该操作会抛出AGCAuthException异常,收到错误码为203818081的错误,这种情况下您可以先调用AGConnectUser.userReauthenticate,重认证帐号后再执行敏感操作。
let credential = '';
if(verifyCode){
credential = agconnect.auth().PhoneAuthProvider.credentialWithVerifyCode(countryCode, account, password, verifyCode);
}else{
credential = agconnect.auth().PhoneAuthProvider.credentialWithPassword(countryCode, account, password);
}
agconnect.auth().getCurrentUser().then(async user => {
if(user){
await agconnect.auth().userReauthenticate(credential);
}
})
四、异常处理
在某些情况下,程序无法按预想的情况正常执行,而是会发生异常。可以根据AGCAuthException实例对象或者AGCError实例对象返回的错误码定制实现自己的异常处理方案,给用户带来更友好体验。
处理异常
处理接口异常时,您可以从接口抛出的异常来获取到请求失败的相关信息。您需要判断该方式回调的异常对象是否是一个AGCAuthException实例对象或者AGCError实例对象,然后您可以根据返回的错误码定制实现您自己的异常处理场景。
import {AGCAuthException} from '@hw-agconnect/auth-ohos';
import {AGCError} from '@hw-agconnect/auth-core';
agconnect.auth().signIn(credential)
.then(user => {
//登录成功
}).catch(error => {
//登录失败
if (error instanceof AGCAuthException || error instanceof AGCError) {
// 根据错误码进行处理
}
});
错误码203817986特殊处理说明
用户登录成功后,认证服务SDK会保存当前用户的Access Token和Refresh Token。
Access Token:用户的访问令牌,表明用户的唯一身份,涉及到用户级别的操作,都需要验证Access Token。
Refresh Token:刷新用户的Access Token,由认证服务SDK自动刷新。
Access Token有效期为1小时,Refresh Token为2个月。用户如果连续2个月没有登录操作,再调用涉及用户级别的接口时,Refresh Token失效,会抛出错误码203817986。
应该在代码中显式捕获该错误码,提示用户重新登录。
五、SDK隐私安全说明
华为软件技术有限公司(以下简称“我们”或“华为”)将通过本文档向应用开发者和其用户说明SDK的隐私安全信息,包括认证服务处理的个人信息范围、处理目的、权限使用情况、如何获取最新的SDK等。
如果您是开发者,在接入、使用认证服务 SDK和服务前,请按照本说明要求在您应用的隐私政策中向您的用户告知SDK相关信息,并获取用户的同意或取得其他合法性基础。有关如何处理开发者个人数据的说明,您可参阅关于华为AppGallery Connect与隐私的声明。
如果您是用户,在您使用集成了本SDK的应用前,请务必仔细阅读相关应用的隐私政策及本SDK安全隐私说明,确保您充分理解和同意之后再开始使用。
SDK处理的个人信息
为了向应用开发者和其用户提供本SDK和服务,我们会收集、使用、存储服务所必需的如下个人信息。
基于不同的设备和系统版本,以及开发者在集成、使用我们SDK产品时决定的权限,收集的设备信息会有所不同,因此开发者应对实际收集的个人信息向用户进行说明。
如果您是开发者,在您接入、使用认证服务SDK和服务前,我们要求您在隐私政策中向用户告知我们SDK的名称、SDK提供方名称、收集个人信息类型、使用目的、隐私政策链接,并获取用户的同意或取得其他合法性基础。您可以参考如下方式提供条款内容:
以文字方式向用户告知
第三方SDK名称:AGC 认证服务SDK(OpenHarmony版)
第三方名称:华为软件技术有限公司
收集个人信息类型:应用信息、您主动上传的数据(包括注册认证使用的手机号码、邮箱地址、头像、昵称、认证凭证)
使用目的:在认证提供方系统中最终用户的唯一标识,使最终用户可通过其在认证提供方系统中的标识来登录客户的应用,并在客户的应用中展示最终用户的个人信息。
隐私政策链接:
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-auth-openharmony-sdksecurity-0000001287292036
以表格方式向用户告知
SDK权限声明
无
SDK延迟初始化
为了避免开发者的应用在未获取您的同意前,SDK提前启动收集使用您的个人信息。认证服务SDK提供了初始化接口agconnect.auth(),要求开发者的应用获取您的同意后才能调用此接口初始化SDK。
SDK数据安全保护
SDK端侧采集数据本地加密,与AGC后台采用HTTPS安全协议进行传输。
SDK版本更新声明
为了向您提供更新的、安全的服务,我们会不时更新SDK版本。我们强烈建议开发者集成使用最新版本的SDK并向开发者提供了下载地址。
SDK工作方式
SDK需要在应用打包时,被加载在您的应用当中。SDK会随着客户应用的启动而启动。当用户关闭应用时,SDK会随着客户应用的关闭而关闭,不会在后台做任何额外动作。
九、个人数据处理说明
此文档针对华为作为最终用户数据处理者,您作为最终用户数据控制者的数据处理进行说明,包括:
华为处理的个人数据清单
指导您如何实现对最终用户数据的控制
华为处理的个人数据清单
指导您如何实现对最终用户数据的控制
如何清除最终用户的数据?
AAID在匿名用户选择绑定邮箱地址后会自动删除,在最终用户删除后或客户通过其他方式选择删除数据后立即清除。
ProviderAccessToken仅用于即时发往认证提供方系统进行身份验证,不保存。
AgcAccessToken自创建后48小时自动清除,AgcRefreshToken自创建后30天自动清除。在用户或开发者提前结束用户登录会话时AgcAccessToken和AgcRefreshToken会被立即清除。
其他数据在最终用户删除后或客户通过其他方式选择删除数据后立即清除。
在开发者删除创建的项目/应用后进行删除。