使用iOS进行社交网络登录

Gil*_*vik 4 php iphone facebook oauth ios

我正在编写一个与我自己的服务器兼容的iPhone应用程序.

基本上,它是一个用户可以发布的论坛.我不希望用户在我的服务器上登录帐户,但我更喜欢他们使用他们拥有的任何现有帐户登录:Facebook,Linkedin,Foursquare等.所以从应用程序本身,我希望他们能够使用他们现有的帐户登录,然后允许他们在论坛上发帖.

我的问题是:当用户发布一条消息,我怎么能确认他是否与任何服务登录?我需要在客户端和服务器端验证它.我打算用PHP编写服务器端.

谢谢

cbr*_*hli 11

请参阅此问题进行类似的讨论(仅限于Facebook登录).以下是对应该发生的事情的高级概述(取自我所链接的讨论):

  1. 用户在手机上打开应用程序.选择要进行身份验证的服务.
  2. 通过一个可用的服务(Facebook,Twitter,foursquare等)验证并获得一些特殊的access token.
  3. 您的应用程序获取令牌并将其发送到您的服务器.
  4. 您的服务器接收令牌并验证它.它根据服务的API进行检查,并且(至少对于Facebook和Twitter)获取相应的用户ID.
  5. 假设有效ID,您的服务器会检查某个用户是否已使用过用户ID.如果是,则将其记录下来.如果尚未创建用户标识,则服务器会创建与该用户标识关联的自己的用户记录并将用户登录.在任何一种情况下,用户最终都会登录并且您的服务器出现问题a session key到你的应用程序.
  6. session key用于您的应用程序和服务器之间的所有进一步的沟通,直到用户注销.

在手机上,您将需要一些OAuth库,以允许用户使用其他服务进行身份验证.您可能希望使用Facebook iOS SDK来允许他们使用Facebook并在此处使用其中一个建议的OAuth库来提供其他身份验证服务.我只使用了Facebook SDK,所以我不能说一般的OAuth库.

登录后,手机不应该存储access token,只能存储session key.

假设用户可以使用多个服务来访问他们的帐户,您还需要某种方式将两个服务连接到同一个用户(可能通过电子邮件地址).

由您来决定您的应用和服务器的通信方式.我会去寻找与服务器通信的JSON + REST API.