HarmonyOS 鸿蒙Next一文教你区分华为账号unionId、openId和游戏playerId

发布于 1周前 作者 bupafengyu 来自 鸿蒙OS

HarmonyOS 鸿蒙Next一文教你区分华为账号unionId、openId和游戏playerId

背景介绍

当前绝大部分App都会要求用户先完成注册、登录等环节,方可使用应用。用户登录后,开发者一般会使用唯一标识记录用户信息,以实现后续的相关功能,比如记录当前用户的游戏进度、排行榜,道具发放到指定用户等。好的用户注册、登录等体验,可以极大的提升用户对App的使用兴趣,提高用户转化率和活跃度。

华为帐号遵循OAuth 2.0OpenId Connect国际标准协议,在手机、平板、电视和车机等多个平台上,让用户可以通过华为帐号快速、便捷地登录APP,共享华为平台的帐号资源。

那么问题来了,开发者使用了华为帐号登录了应用或者游戏,华为会提供什么样的用户ID供开发者去唯一标识一个用户呢?

openId、unionId和playerId

目前,华为对外提供的帐号登录服务主要包括如下几块:

  • HMS CoreAccount SDK提供的华为帐号登录

  • HMS CoreGame Service SDK提供的华为游戏帐号登录

  • 认证服务(agconnect-auth SDK)提供的华为帐号登录

  • 认证服务(agconnect-auth SDK)提供的华为游戏帐号登录

本章节我们主要讲解HMS Core提供的华为帐号登录和华为游戏帐号登录,认证服务涉及的帐号登录我们放在下一篇。划重点如下:

表1-1 HMS Core帐号和游戏服务提供的用户标识                                               

   

HMS Core分类

   
   

应用场景

   
   

相同点

   
   

不同点

   
 

Account SDK

 
 

普通应用或者游戏使用华为帐号快速授权登录自己的应用或游戏,并获取Account服务提供的相关用户标识。

 
 

对终端用户而言体验都是华为帐号登录应用或游戏

 
 

Account服务提供的用户标识为openIdunionId,用户可根据自己的诉求选择任意一个。

 
 

Game Service SDK

 
 

游戏使用华为帐号快速授权登录自己的游戏,并获取Game   Service服务提供的相关用户标识。

 
 

Game Service服务提供的用户标识是playerId

 

那么问题来了:

1.既然对终端用户登录体验是一致的,作为一个游戏开发者,我应该选择Account SDK还是Game Service SDK呢?

2.如果我选择Account SDK接入,怎么根据自己的业务诉求去选择openId还是unionId?

问题本质:openIdunionIdplayerId的区别和联系。

在介绍这三者区别之前,我们需要储备如下背景知识:

表1-2 背景知识                                  

   

分类

   
   

说明

   
 

uid

 
 

华为系统给每个华为帐号(或者叫用户帐号)分配的唯一标识

 
 

clientId

 
 

华为系统给每个应用分配的应用唯一标识,这里您可以简单理解为appid

 
 

developerId

 
 

华为系统给每个开发者帐号分配的唯一标识,开发者帐号您可以简单理解为您已经注册的、用于登录华为控制台管理应用信息、商品和发布等的帐号。

 

一个开发者帐号下可以管理多个应用信息。

 

 

一张表告诉您openIdunionIdplayerId的区别

表1-3 openIdunionIdplayerId详细说明                                              

   

分类

   
   

说明

   
   

对比结论

   
 

openId

 
 

由华为帐号(用户帐号)和应用唯一标识组合加密起来的用户标识

 

简单理解:openiduid+clientid

 
 

相同点:三者都可以用来做用户标识。

 

不同点(如何选择)

 

1)如果开发者需要互通该账号下的所有应用,因为不同应用clientId不同,同一开发者帐号developerId相同,那么用户使用同一个华为帐号(uid相同),此时unionIdplayerId必然相同,推荐使用unionIdplayerId


2)playerId仅跟华为帐号(用户帐号)有关,不会随着应用或开发者帐号信息变化而变化,用于游戏类应用。华为游戏服务提供的如玩家排行榜、存档等各种功能,都是关联到该用户标识的。如果您的游戏仅仅是使用华为帐号登录并唯一标识用户,不使用游戏的一些个性化服务,如防沉迷、排行榜等,那么您可以不选择playerId

 
 

unionId

 
 

由华为帐号(用户帐号)和开发者帐号组合加密起来的用户标识。

 

简单理解:unioniduid+developerid

 
 

playerId

 
 

华为游戏服务给华为帐号(用户帐号)封装处理后的对外开放的游戏玩家标识。

 

简单理解:playerIduid

 

 

 


3 回复

这里应该是“用户”吧?

cke_378.png

playerid跨开发者账号是一样,现在华为要把playerid迁移到openid。问题是要怎么才能取到跨开发者账号能取到一样的玩家id

在HarmonyOS鸿蒙系统中,华为账号相关的标识符主要包括unionId、openId以及游戏playerId,它们在应用开发和用户管理中扮演着不同的角色。

  1. unionId:这是华为账号在华为生态中的唯一标识,用于跨应用、跨设备识别同一用户。它具有全局唯一性,即使在用户更换设备或重新安装应用时,unionId也保持不变,是实现用户数据同步和个性化推荐的关键。

  2. openId:openId是华为账号在开放平台中的标识,主要用于第三方应用或服务与华为账号系统的对接。通过openId,第三方应用可以安全地获取用户的基本信息和进行权限管理,而无需直接处理用户的敏感数据。

  3. 游戏playerId:这是专门为游戏场景设计的用户标识符,用于在游戏内唯一标识玩家。与unionId和openId不同,playerId更多地关注于游戏内的用户数据管理和社交功能,如好友列表、排行榜等。

简而言之,unionId是全局唯一的用户标识,openId用于第三方应用接入,而playerId则专注于游戏内的用户管理。这三者共同构成了华为账号系统在HarmonyOS鸿蒙系统中的用户识别体系。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部