我正在设计一个具有以下功能的移动应用程序:
实现第一认证方法。Web服务发回一个验证令牌,用户使用该验证令牌对自己进行身份验证。后者与用户ID一起存储在移动台的非易失性(受保护)存储中。
我知道很多应用程序都提供了我们正在谈论的两种身份验证方法。我想知道它通常如何与Facebook身份验证结合使用。此刻,我正在考虑在Facebook登录后生成凭证,并对我的Web服务中的Facebook用户进行身份验证,就像他们是传统用户一样。用户将存储在相同的Web服务数据库表中。请注意,数据库中的标记会告诉我们用户是否使用Facebook登录,因为如果用户在另一个设备上使用相同的Facebook帐户(通过电子邮件标识)登录,则不会重复。
编辑:此外,例如,某些应用程序允许Facebook用户与他们的Facebook朋友一起玩,但是由于人们只能使用一个临时访问令牌来查询Facebook API,因此该应用程序如何以持久的方式完成?更一般而言,某些应用程序如何保持FB会话持久?
您认为这可行吗?
Facebook访问令牌分为两种:短期令牌和长期令牌。您可能曾经玩过短期应用程序,但Facebook文档说[1],通常移动应用程序会使用长期应用程序。
使用Facebook SDK的本机移动应用程序将获得寿命很长的访问令牌,有效期约为60天。当使用您的应用的人向Facebook的服务器发出请求时,这些令牌将每天刷新一次。如果未提出任何请求,则令牌将在约60天后过期,此人将不得不再次通过登录流程来获取新令牌。
iOS Facebook SDK [2]有一个有关维护会话的示例,该示例位于捆绑包的安装包中。(在GitHub [3]上也有相同的代码。)这是GitHub其中最重要的部分:
SLAppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
if (!appDelegate.session.isOpen) {
// Open new session
}
一旦使用恢复或恢复了会话isOpen
,示例中就没有一行代码可以刷新它。我不是iOS程序员,但对我来说,引用文档中的段落以及教程中的代码片段清楚地表明,我什至不需要其他刷新操作,只需在60天内成功使用即可。
简而言之,您不可能拥有永久的永久令牌,但是幸运的是,如果您只是让用户以足够频繁的方式使用该应用程序,那么您将拥有几乎一个永久令牌。
[1] https://developers.facebook.com/docs/facebook-login/access-tokens
[2] https://developers.facebook.com/docs/ios/sample-apps#sdk
[3] https:/ /github.com/Citrrus/facebook-ios-sdk/tree/master/samples/SessionLoginSample
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句