HarmonyOS 鸿蒙Next一文教你区分华为账号unionId、openId和游戏playerId
HarmonyOS 鸿蒙Next一文教你区分华为账号unionId、openId和游戏playerId
背景介绍
当前绝大部分App都会要求用户先完成注册、登录等环节,方可使用应用。用户登录后,开发者一般会使用唯一标识记录用户信息,以实现后续的相关功能,比如记录当前用户的游戏进度、排行榜,道具发放到指定用户等。好的用户注册、登录等体验,可以极大的提升用户对App的使用兴趣,提高用户转化率和活跃度。
华为帐号遵循OAuth 2.0和OpenId Connect国际标准协议,在手机、平板、电视和车机等多个平台上,让用户可以通过华为帐号快速、便捷地登录APP,共享华为平台的帐号资源。
那么问题来了,开发者使用了华为帐号登录了应用或者游戏,华为会提供什么样的用户ID供开发者去唯一标识一个用户呢?
openId、unionId和playerId
目前,华为对外提供的帐号登录服务主要包括如下几块:
HMS Core的Account SDK提供的华为帐号登录
HMS Core的Game Service SDK提供的华为游戏帐号登录
认证服务(agconnect-auth SDK)提供的华为帐号登录
认证服务(agconnect-auth SDK)提供的华为游戏帐号登录
本章节我们主要讲解HMS Core提供的华为帐号登录和华为游戏帐号登录,认证服务涉及的帐号登录我们放在下一篇。划重点如下:
表1-1 HMS Core帐号和游戏服务提供的用户标识
HMS Core分类 | 应用场景 | 相同点 | 不同点 |
Account SDK | 普通应用或者游戏使用华为帐号快速授权登录自己的应用或游戏,并获取Account服务提供的相关用户标识。 | 对终端用户而言体验都是华为帐号登录应用或游戏 | Account服务提供的用户标识为openId或unionId,用户可根据自己的诉求选择任意一个。 |
Game Service SDK | 游戏使用华为帐号快速授权登录自己的游戏,并获取Game Service服务提供的相关用户标识。 | Game Service服务提供的用户标识是playerId |
那么问题来了:
1.既然对终端用户登录体验是一致的,作为一个游戏开发者,我应该选择Account SDK还是Game Service SDK呢?
2.如果我选择Account SDK接入,怎么根据自己的业务诉求去选择openId还是unionId?
…
问题本质:openId、unionId和playerId的区别和联系。
在介绍这三者区别之前,我们需要储备如下背景知识:
表1-2 背景知识
分类 | 说明 |
uid | 华为系统给每个华为帐号(或者叫用户帐号)分配的唯一标识 |
clientId | 华为系统给每个应用分配的应用唯一标识,这里您可以简单理解为appid |
developerId | 华为系统给每个开发者帐号分配的唯一标识,开发者帐号您可以简单理解为您已经注册的、用于登录华为控制台管理应用信息、商品和发布等的帐号。 一个开发者帐号下可以管理多个应用信息。 |
一张表告诉您openId、unionId和playerId的区别
表1-3 openId、unionId和playerId详细说明
分类 | 说明 | 对比结论 |
openId | 由华为帐号(用户帐号)和应用唯一标识组合加密起来的用户标识 简单理解:openid≈uid+clientid | 相同点:三者都可以用来做用户标识。 不同点(如何选择): (1)如果开发者需要互通该账号下的所有应用,因为不同应用clientId不同,同一开发者帐号developerId相同,那么用户使用同一个华为帐号(uid相同),此时unionId和playerId必然相同,推荐使用unionId或playerId。 (2)playerId仅跟华为帐号(用户帐号)有关,不会随着应用或开发者帐号信息变化而变化,用于游戏类应用。华为游戏服务提供的如玩家排行榜、存档等各种功能,都是关联到该用户标识的。如果您的游戏仅仅是使用华为帐号登录并唯一标识用户,不使用游戏的一些个性化服务,如防沉迷、排行榜等,那么您可以不选择playerId。 |
unionId | 由华为帐号(用户帐号)和开发者帐号组合加密起来的用户标识。 简单理解:unionid≈uid+developerid | |
playerId | 华为游戏服务给华为帐号(用户帐号)封装处理后的对外开放的游戏玩家标识。 简单理解:playerId≈uid |
这里应该是“用户”吧?
playerid跨开发者账号是一样,现在华为要把playerid迁移到openid。问题是要怎么才能取到跨开发者账号能取到一样的玩家id
在HarmonyOS鸿蒙系统中,华为账号相关的标识符主要包括unionId、openId以及游戏playerId,它们在应用开发和用户管理中扮演着不同的角色。
-
unionId:这是华为账号在华为生态中的唯一标识,用于跨应用、跨设备识别同一用户。它具有全局唯一性,即使在用户更换设备或重新安装应用时,unionId也保持不变,是实现用户数据同步和个性化推荐的关键。
-
openId:openId是华为账号在开放平台中的标识,主要用于第三方应用或服务与华为账号系统的对接。通过openId,第三方应用可以安全地获取用户的基本信息和进行权限管理,而无需直接处理用户的敏感数据。
-
游戏playerId:这是专门为游戏场景设计的用户标识符,用于在游戏内唯一标识玩家。与unionId和openId不同,playerId更多地关注于游戏内的用户数据管理和社交功能,如好友列表、排行榜等。
简而言之,unionId是全局唯一的用户标识,openId用于第三方应用接入,而playerId则专注于游戏内的用户管理。这三者共同构成了华为账号系统在HarmonyOS鸿蒙系统中的用户识别体系。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html