社交登录允许使用现有帐户一键注册。谷歌、苹果、Facebook,用户已经有了凭证。本指南介绍了如何安全有效地实施社交登录。
什么是社交登录
定义
使用外部身份提供商进行身份验证。
OAuth 2.0
授权的标准协议。
提供商
谷歌、苹果、Facebook、微软、GitHub。
为什么使用
减少摩擦
一键式与完整形式。
转换
更多用户完成注册。
安全
不再需要管理密码。
验证数据
提供商确认的电子邮件。
顶级提供商
谷歌登录
比较常见。适用于 iOS 和 Android。
使用 Apple 登录
对于提供社交登录的 iOS 应用程序是必需的。
脸书登录
庞大的用户群。
###微软
适合 B2B。
GitHub
对于开发者应用程序。
OAuth 流程
重定向
用户前往提供商处进行身份验证,然后返回代码。
代币交换
后端交换访问令牌的代码。
用户信息
获取用户数据。
会议
在您的系统上创建会话。
使用 Apple 登录
强制
如果您提供其他社交登录信息,Apple 会要求您提供此信息。
###隐私
用户可以隐藏电子邮件。
硬件密钥
本机生物识别身份验证。
跨平台
也适用于 Android 和 Web。
谷歌登录
SDK
提供 Android、iOS、Web SDK。
一键点击
优化体验,无需重定向。
范围
定义要访问的数据。
Firebase 身份验证
简化集成。
移动实施
iOS
Apple、Google SDK 的身份验证服务。
###安卓
Google 登录 SDK、凭据管理器。
反应本机
Expo Auth、React Native 库。
颤动
google_sign_in、sign_in_with_apple 软件包。
后端验证
令牌验证
验证服务器上的令牌。
不要相信客户
始终检查服务器端。
令牌过期
管理过期。
刷新令牌
对于长时间的会议。
关联账户
问题
相同的电子邮件,不同的提供商。
解决方案
通过经过验证的电子邮件链接帐户。
用户界面
提供链接选项。
冲突
确定哪个帐户是主要帐户。
用户体验
标准按钮
使用提供商的官方设计。
加载状态
在验证过程中显示进度。
错误
如果失败则清除消息。
后备
电子邮件/密码作为替代。
提供商数据
基本
电子邮件、姓名、照片。
附加范围
联系人、日历(必要时)。
最小化
只要求你需要的东西。
更新
数据可能会在提供商处发生变化。
安全
HTTPS
总是如此,无一例外。
状态参数
防止 CSRF。
令牌存储
安全存储,而不是纯文本。
撤销
当用户取消授权时进行处理。
##隐私
同意
解释您将使用哪些数据。
LGPD/GDPR
社交登录也不能免除合规性。
最低数据
只做必要的事情。
删除
尊重删除请求。
##退出
社交注销?
一般不会。仅来自您的应用程序。
令牌撤销
使系统上的令牌无效。
清除状态
清除本地数据。
常见错误
不验证令牌
接受客户的任何东西。
不要链接帐户
用户创建重复项。
非标准化 UI
不遵循准则的按钮。
失踪的苹果
应用程序因不包含而被拒绝。
指标
按提供商转换
哪个转化效果最好?
错误
每个提供商的失败率。
账户关联
有多少个链接帐户。
结论
社交登录可减少摩擦并提高转化率。正确实施,始终检查服务器端令牌。如果是 iOS,则包括 Apple,提供电子邮件作为后备,并遵循提供商的 UI 指南。
##常见问题解答
1) 必须使用 Apple 登录吗? 如果您的应用程序提供其他社交登录,则适用于 iOS。
2) 我可以信任提供商的数据吗? 检查服务器上的令牌。如果经过提供商验证,电子邮件通常是可靠的。
3) 如何应对Apple的“隐藏我的电子邮件”? 电子邮件代理工作正常。这不是真正的电子邮件。
4) 我也应该提供登录电子邮件/密码吗? 推荐。并不是每个人都想使用社交。
5) 社交登录更安全吗? 也许吧。用户没有创建弱密码。但这取决于实施。
另请阅读
- [应用程序中的社交登录:通过示例来规划什么有效、什么出错0
- [社交登录实践:在应用程序中实施之前的决策路线图1
- [应用程序身份验证:完整的安全性和用户体验指南2
- [应用程序中的身份验证 - 使用清单的最佳实践3
- [应用程序中的身份验证 - 最佳实践与示例4
- [OAuth 什么是 5?
