Ios 移动应用:持久登录(两种认证方式)

Ios 移动应用:持久登录(两种认证方式),ios,facebook,web-services,authentication,mobile,Ios,Facebook,Web Services,Authentication,Mobile,我正在设计一款具有以下功能的移动应用程序: 用户第一次打开应用程序时,会被要求通过使用经典用户名/密码模式登录或使用Facebook登录,对应用程序web服务进行身份验证 然后,下次打开应用程序时,用户将不必再次输入其凭据,并自动登录 实现了第一种认证方法。web服务发回一个身份验证令牌,用户使用该令牌对自己进行身份验证。后者与用户ID一起存储在移动设备的非易失性(受保护)存储器中 我知道很多应用程序都提供了我们正在讨论的两种身份验证方法。我想知道它通常是如何与Facebook认证相结合的。目前

我正在设计一款具有以下功能的移动应用程序:

  • 用户第一次打开应用程序时,会被要求通过使用经典用户名/密码模式登录或使用Facebook登录,对应用程序web服务进行身份验证
  • 然后,下次打开应用程序时,用户将不必再次输入其凭据,并自动登录
  • 实现了第一种认证方法。web服务发回一个身份验证令牌,用户使用该令牌对自己进行身份验证。后者与用户ID一起存储在移动设备的非易失性(受保护)存储器中

    我知道很多应用程序都提供了我们正在讨论的两种身份验证方法。我想知道它通常是如何与Facebook认证相结合的。目前,我正在考虑在Facebook登录后生成凭据,并将Facebook用户验证到我的web服务,就好像他们是经典用户一样。用户将存储在同一个web服务数据库表中。请注意,数据库中的一个标志将告诉我们用户是否使用Facebook登录,因为如果用户使用相同的Facebook帐户(通过电子邮件识别)在另一台设备上登录,则不会出现重复

    编辑:此外,有些应用程序允许Facebook用户与他们的Facebook好友一起玩,但由于只能使用临时访问令牌来查询Facebook API,因此如何以持久的方式进行呢?更一般地说,一些应用程序如何保持FB会话的持久性


    你认为它可行吗?

    Facebook访问令牌有两种类型:短期和长期。你可能玩过短期的,但Facebook的文档说,通常移动应用使用长期的

    使用Facebook的SDK的本地移动应用程序将获得长期访问令牌,有效期约为60天。当使用你的应用程序的人向Facebook的服务器发出请求时,这些代币将每天刷新一次。如果没有请求,令牌将在大约60天后过期,用户必须再次通过登录流才能获得新令牌

    iOS Facebook SDK有一个关于维护会话的示例,该示例将在捆绑包的安装包中提供。(GitHub上也有相同的代码。)以下是GitHub中最重要的部分:

    SLAppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
    if (!appDelegate.session.isOpen) {
       // Open new session
    }
    
    使用
    isOpen
    还原/发现会话处于活动状态后,示例中没有代码行可用于刷新会话。我不是一个iOS程序员,但对我来说,引用了文档中的一段和教程中的代码片段,我清楚地认为,甚至不需要其他刷新操作,只需要在大约60天内成功使用

    简而言之,你不可能拥有一个永久的代币,但幸运的是,如果你能让你的用户以足够频繁的方式使用该应用程序,你几乎拥有了一个永久的代币

    [1]
    [2]

    [3]

    Facebook访问令牌有两种类型:短期和长期。你可能玩过短期的,但Facebook的文档说,通常移动应用使用长期的

    使用Facebook的SDK的本地移动应用程序将获得长期访问令牌,有效期约为60天。当使用你的应用程序的人向Facebook的服务器发出请求时,这些代币将每天刷新一次。如果没有请求,令牌将在大约60天后过期,用户必须再次通过登录流才能获得新令牌

    iOS Facebook SDK有一个关于维护会话的示例,该示例将在捆绑包的安装包中提供。(GitHub上也有相同的代码。)以下是GitHub中最重要的部分:

    SLAppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
    if (!appDelegate.session.isOpen) {
       // Open new session
    }
    
    使用
    isOpen
    还原/发现会话处于活动状态后,示例中没有代码行可用于刷新会话。我不是一个iOS程序员,但对我来说,引用了文档中的一段和教程中的代码片段,我清楚地认为,甚至不需要其他刷新操作,只需要在大约60天内成功使用

    简而言之,你不可能拥有一个永久的代币,但幸运的是,如果你能让你的用户以足够频繁的方式使用该应用程序,你几乎拥有了一个永久的代币

    [1]
    [2]
    [3]