我在服务器端编写iOS应用(例如聊天或需要身份验证的任何内容)。
我希望用户能够使用尽可能简单的身份验证过程(最好的一种-根本没有可见的过程)使用多个设备。
基本上,用户已经在iOS中通过身份验证(使用其Apple ID)。
因此,我认为认证很容易,例如:
1)从iOS获取当前用户ID(本身不必是Apple ID,但可以是我自己的应用程序中单个Apple ID中未更改的任何字符串)。
2)从iOS上获得一些签名,以便此Apple ID能够验证字符串(1)在服务器端是否有效(否则客户端可以发送任何随机字符串)。
优点:99%的用户已经通过身份验证,与用户无关。无需电子邮件或其他任何方式。而且很安全。对于只有1%的未通过身份验证的用户-他们可以在iOS中进行认证。很遗憾,我没有找到类似的东西。
我认为自己不喜欢的解决方案:
1)我自己的身份验证。 缺点:每个用户都必须注册,设置电子邮件(以便具有恢复密码的能力),选择密码等。我相信一半用户可以删除应用程序来避免这种麻烦。
2)社交网络身份验证。缺点:一堆看起来并不酷的不同按钮。难以集成和支持它们中的每一个。仍然有可能用户没有所有的twitter / facebook / etc帐户,并且仍然需要(1)。
3)游戏中心身份验证。缺点:没关系,有点类似于我的理想选择,但主要问题是-我如何才能保证后端具有GC ID“ G:123456789”的用户发送的请求不是伪造的?因为他可以发送他想要的任何ID,但我找不到验证它的方法。
有什么好方法可以不打扰用户,并且仍然具有方便,安全的身份验证方法?