跳到主要内容

关于不同登录方式同一邮箱自动绑定处理

· 阅读需 6 分钟

1、背景:

目前心动海外游戏在现有 TapTap、游客登录基础上,允许额外开通 Apple、Google 登录。注意:该功能仅针对用海外。

基于目前海外用户习惯,当用户使用不同方式登录(Apple、Google、TapTap)且为同一邮箱时,需要让其登录上同一账号,防止其账号裂开。详细背景

例如用户使用 TapTap (邮箱 A)登录并创建心动账号(XDID:1)后,再使用新的 Google (邮箱 A)账号登录时,会自动登录并绑定该 Google 账号至心动账号(XDID:1)。

2、处理事项

基于邮箱登录策略,防止用户账号裂开,以下场景项目组需要自行处理并告知用户:

场景一:用户未验证 TapTap 邮箱导致登录失败

前置条件:

  • 用户使用邮箱、密码注册 TapTap 账号时未通过邮件验证邮箱。

场景描述:

  • 当用户使用未验证邮箱的 TapTap 账号登录后,需要告知其邮箱未验证并弹窗引导其前往邮箱进行验证。

弹窗文案:

  • 标题:邮箱未验证
  • 内容:当前 {第三方平台名称} 账号所关联的邮箱( {从第三方平台获取的邮箱信息})未被验证,请先查看注册 {第三方平台名称} 账号时发送至 ( {从第三方平台获取的邮箱信息})的验证邮件,并根据邮件指引验证成功后再次尝试登录。

场景1

场景二:多个心动账号绑定同一邮箱

前置条件:

  • XDID:1 已绑定 TapTap 账号(邮箱 A)、Google 账号 (邮箱 B)
  • XDID:2 已绑定 Google 账号(邮箱 A)

用户流程:

  • 用户使用 Apple 账号 (邮箱 A)登录时,由于 SDK 并不知晓用户期望绑定哪一个 XDID 所以需要告知用户账号已存在并引导用户登录原有账号执行绑定、解绑操作。

弹窗文案:

  • 标题:账号已存在
  • 内容:当前 {第三方平台名称} 账号所关联的邮箱({从第三方平台获取的邮箱信息})已被用于另一个游戏账号,请使用该邮箱所关联的 {邮箱所关联心动账号下绑定该邮箱的其他登录方式} 登录游戏账号后进入「账号安全中心」进行账号绑定、解绑操作。

场景2

场景三:现有心动账号已绑定用户当前的登录方式

前置条件:

  • XDID:1 已绑定 TapTap 账号(邮箱 A)、Google 账号 (邮箱 B)

用户流程:

  • 用户使用 TapTap (邮箱 B)登录时,为了防止用户账号裂开情况,将告知用户账号已存在,并弹窗引导用户登录原有账号执行绑定、解绑操作。

弹窗文案

  • 标题:账号已存在
  • 内容:当前 {第三方平台名称}账号所关联的邮箱({从第三方平台获取的邮箱信息})对应的游戏账号已绑定其他 {第三方平台名称}账号 。请使用该邮箱所关联的 {邮箱所关联心动账号下绑定该邮箱的其他登录方式} 登录游戏账号后进入「账号安全中心」进行账号绑定、解绑操作。

场景3

3、注意事项

事项一:移动端(iOS、Android...)、PC端等全端登录方式必须保持一致

事项二:需新增登录方式时,必须以强更方式升级至 6.5.0 及以上。

事项三:6.5.0 及以上版本,将默认开通解绑操作,以防止 SDK 执行自动绑定时不符合用户预期。

事项四:6.5.0 的 登录接口 中会携带详细的错误信息提供给游戏来展示对应的 UI。 为此开发需要在 XDConfig.json 中 tapsdkfacebookpermissions 节点增加 email 权限来让我们获得用户在各平台的绑定邮箱。

XDConfig.json
 {
"tapsdk": {
xxx:xxx,
"permissions": [
"public_profile",
"email", //必须,防止同一个邮箱的账号裂开
"user_friends" // 需要好友权限的增加这一行,不需要可删除
]
},
"facebook": { // Facebook 配置,可选,没有可以删除配置
"app_id": "xxx",
"client_token": "xxx",
"permissions": [
"public_profile",
"email", //必须,防止同一个邮箱的账号裂开
"user_friends" // 需要好友权限的增加这一行,不需要可删除
]
},
}