首页 > 解决方案 > 在带有后端的 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,而我找不到验证它的方法。

有什么好方法可以不打扰用户,并且仍然有方便安全的身份验证方法吗?

标签: iosauthentication

解决方案


推荐阅读