背景信息
三个目标
不同登录方式的对比
- Facebook 登录:强社交 + 跨设备系统 + 接入简单,最优先建议;
- Play Games 登录:游戏 + 弱社交 + 谷歌全家桶 + 仅限安卓系统;
- Google 登录:优先级最低,暂不考虑;
方式一:直接接入
接入 Facebook 登录
官方文档
- [Facebook] Facebook SDK for Unity Reference
- [Facebook] Facebook Login Best Practices
- [Facebook] User Experience Design
流程概述
- 登入(未登录 -> 登录):
点击登录按钮 -> 处理登录流程 ->(可选)登录成功/失败的交互反馈 -> 同步按钮状态; - 登出(登录 -> 未登录):
点击退出按钮 -> 处理退出流程 ->(可选)退出成功的交互反馈 -> 同步按钮状态;
测试方法
需要测试以下三种可能的情形:
- 设备上未安装 Facebook,跳转至设备浏览器的 Facebook web 登录界面(m.facebook.com);
- 设备上已安装 Facebook 但未登录,跳转至 Facebook app 登录界面;
- 设备上已安装 Facebook 且已登录,直接原地申请获取玩家权限;
接入 Play Games 登录
官方文档
- [Android] Get started with the Google Play Games plugin for Unity
- [GitHub] Sign in
流程概述
- 设备无谷歌服务框架的,直接跳过,不作任何处理;
- 已创建 Play 游戏账号的,系统自动登录;
- 未创建 Play 游戏账号的,需要手动处理(ManuallyAuthenticate):
- 可直接放弃集成;
- 可强制引导登录,引导玩家以当前谷歌账号创建 Play 游戏账号;
⚠️ 仅需登入,无登出入口(因为方法已被官方删除);
测试方法
需要测试以下三种可能的情形:
- 设备上无谷歌服务框架,无需测试;
- 设备上有谷歌服务框架,但未创建 Play 游戏账号,引导创建 Play 游戏账号;
- 未登录 Google 账号,未创建 Play 游戏账号;
- 已登录 Google 账号,未创建 Play 游戏账号;
- 设备上有谷歌服务框架,且已创建 Play 游戏账号,直接自动登录;
补充说明:创建和删除 Play 游戏账号,直接在设备层级操作;
方式二:间接接入
通过 Firebase Authentication 接入。
关于 Firebase Authentication
- 支持的登录方式见 Firebase Authentication
结论:支持第三方登录如 Facebook/Google/Play Games 等,也支持直接注册如邮件/电话/匿名; - 收费标准:
结论:月活5W以内免费,超过部分每个$0.0025-$0.0055;- Firebase全产品线:Pricing plans
- Firebase Authenticate:No cost and Pay as you go
官方文档
- [Firebase] Firebase Authentication in Unity:
- [Facebook] Facebook SDK for Unity:
- Facebook Login Examples
- Facebook Login Permissions
关于权限范围:
- 默认可向玩家申请:
email
和public_profile
; - 如需核心的社交功能,则需要额外的权限:
user_friends
,具体申请路径是:- Facebook开发者后台 -> App Review;
- 默认可向玩家申请:
- [GitHub] Google Play Games plugin for Unity: