ios - 在带有后端的 iOS 应用程序中验证用户的最佳方式是什么?
问题描述
我用服务器端编写 iOS 应用程序(比如说聊天或任何需要身份验证的东西)。
而且我希望用户能够通过尽可能简单的身份验证过程使用多个设备(最好的一个 - 根本没有可见的过程)。
基本上用户已经在 iOS 中进行了身份验证(使用他/她的苹果 ID)。
因此,在我看来,身份验证可以像这样简单:
1)从iOS获取当前用户ID(它不必是苹果ID本身,而是在我自己的应用程序中的单个苹果ID中没有改变的任何字符串)。
2) 从 iOS 获取此 Apple ID 的一些签名,以便能够验证字符串 (1) 在服务器端是否有效(否则客户端可以发送任何随机字符串)。
优点:99% 的用户已经通过身份验证,用户无事可做。不需要电子邮件或其他任何东西。而且它是安全的。对于 1% 未通过身份验证的人 - 他们可以在 iOS 中进行。
不幸的是,我没有找到这样的东西。
我认为我不喜欢的解决方案:
1)我自己的身份验证。缺点:每个用户都必须注册、设置电子邮件(以便能够恢复密码)、选择密码等。我相信有一半的用户可以删除应用程序来避免这个地狱。
2) 社交网络认证。缺点:一堆看起来一点都不酷的不同按钮。很难整合和支持它们中的每一个。并且仍然有可能用户没有所有这些 twitter/facebook/etc 帐户并且仍然需要 (1)。
3) 游戏中心认证。缺点:实际上没关系,有点类似于我的理想,但主要问题是 - 我如何在我的后端保证发送请求的 GC ID 为“G:123456789”的用户不是假的?因为他可以发送他想要的任何 ID,而我找不到验证它的方法。
有什么好方法可以不打扰用户,并且仍然有方便安全的身份验证方法吗?
解决方案
推荐阅读
- python - 函数“move_by_offset(x, y)”只在第一次有效
- python - 使用 with 语句的 Python 多处理映射不会停止
- php - 从今天开始在 Laravel 中的下一条记录
- pandas - Jupiterlab 很好地打印 DataFrame
- javascript - 从原始字符串中获取特定章程
- c# - 如何将 LambdaExpression 转换为表达式
> 在 C# 中 - android - AndroidX recyclerview 1.0.0 vs 1.1.0 问题
- c# - 从 CreateProcessWithTokenW 获取 C# 中的 Process 对象
- python-3.x - 由 SSLError 引起(“无法连接到 HTTPS URL,因为 SSL 模块不可用。)
- vb.net - 我如何禁用表单关闭按钮 Vb.Net