什么是正确的方式做facebooklogin移动应用程序(与node.js / passport.js服务器)

我有一个移动应用程序正在与后端服务器,我想了解什么是使用Facebooklogin(创build一个帐户),然后保持整个系统同步的最佳做法。

以下是我目前了解的内容: – 移动应用程序可以在设备上进行login并获取access_token – 访问令牌可以传输到服务器。 我做了一个使用passport-facebook-token连接到api.myhost.com/auth/facebook路由的概念certificate,似乎我可以validation用户并检索他的FB数据。 因此,我可以将他匹配到我的数据库中的现有用户或创build一个新的logging。

我不明白:1)我必须使用https将FB令牌传输到我的服务器吗?

2)我应该怎么做我的其他请求,应该被authentication。 我不认为去FB每个请求是一个选项。 想到的一个select是生成另一个(我自己的)访问令牌,并返回作为FBauthentication的结果。

最简单的方法是使用passport-facebook-token会话(这样cookie会话ID可以被序列化并反序列化成用户ID)。 但这意味着我需要维护一些会议的KV存储。

另一种方式是为该用户生成我自己的随机令牌,并在成功login时将其与用户ID一起返回,并将其存储在用户logging中,并且每次从客户端调用API调用此ID /令牌对,并且每次都手动重新validation它们依靠护照。 或者也许凭借护照本地策略呢?

哪一个更好? 每个人的优点/缺点是什么?

2)如果我打算使用FB令牌发布到FB和做graphics分析(朋友等),我打算将令牌存储在服务器上。 我多久需要刷新一次? 每当应用程序启动并刷新客户端上的令牌时,是否应该使用新的FB令牌重新进行身份validation? 那么通过服务器到服务器调用刷新用户FB令牌怎么样? 如果我想保持对用户的FB数据的访问,但是用户停止使用我的或者很less使用它,我是否应该这样做?

是否有任何工作计划的食谱,运作良好?

谢谢!

Facebook令牌安全

您在移动应用程序客户端上创build的令牌适用于您在身份validation中提供了ID的Facebook应用程序。 通过互联网或任何其他易失性信息通信令牌时,我总是使用HTTPS。

Facebook令牌过期和刷新

当您在移动应用程序中进行身份validation时,您通常会在令牌的响应中获取令牌的到期时间。 令牌到期在Facebook API中解释。

使用Facebook SDK的原生移动应用程序将获得长达60天的访问令牌。 当使用您的应用的用户向Facebook服务器发送请求时,这些令牌每天都会刷新一次。 如果没有请求,令牌将在大约60天后过期,并且该人员将不得不再次通过loginstream来获得新的令牌。

关于刷新令牌:

即使是长期的访问令牌最终也会过期。 在任何时候,您都可以通过将用户发送回您的Web应用程序所使用的loginstream来生成新的长时间令牌 – 请注意,该用户实际上不需要再次login,他们已经授权了您的应用程序,立即使用刷新的令牌从loginstreamredirect到您的应用程序 – 对于此人而言,这将如何根据您所使用的loginstreamtypes而有所不同,例如,如果您使用的是JavaScript SDK,则会发生如果您使用的是服务器端的stream程,则浏览器将快速redirect到“login对话框”,然后再自动立即返回到您的应用程序。