使用node.js/passport.js服务器登录移动应用程序的facebook的正确方式是什么

使用node.js/passport.js服务器登录移动应用程序的facebook的正确方式是什么,node.js,facebook-graph-api,passport-facebook,Node.js,Facebook Graph Api,Passport Facebook,我有一个与后端服务器一起工作的移动应用程序,我想了解使用facebook登录(创建帐户)然后保持整个系统同步的最佳实践是什么 以下是我到目前为止的理解: -移动应用程序可以在设备上登录并获取访问令牌 -访问令牌可以传输到服务器。我使用连接到api.myhost.com/auth/facebook路由的passport facebook令牌进行了概念验证,似乎我可以验证用户身份并检索其FB数据。因此,我可以将他与数据库中的现有用户进行匹配,或者创建一个新记录 我不明白的是: 1) 我必须使用htt

我有一个与后端服务器一起工作的移动应用程序,我想了解使用facebook登录(创建帐户)然后保持整个系统同步的最佳实践是什么

以下是我到目前为止的理解: -移动应用程序可以在设备上登录并获取访问令牌 -访问令牌可以传输到服务器。我使用连接到api.myhost.com/auth/facebook路由的passport facebook令牌进行了概念验证,似乎我可以验证用户身份并检索其FB数据。因此,我可以将他与数据库中的现有用户进行匹配,或者创建一个新记录

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

2) 对于其他应该进行身份验证的请求,我该怎么做。我不认为每个请求都去FB是一种选择。想到的一个选项是生成另一个(我自己的)访问令牌,并将其作为FB身份验证的结果返回

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

另一种方法是为该用户生成我自己的随机令牌,在成功登录时将其与用户ID一起返回,将其存储在用户记录中,并让客户端的每个API调用提供此ID/令牌对,并在不依赖passport的情况下每次手动重新验证它们。或者是依靠当地的策略

哪一个更好?每种方法的优点/缺点是什么

2) 如果我确实计划使用FB令牌发布到FB并进行图形分析(朋友等),我 我计划将令牌存储在服务器上。我需要多久刷新一次?每次应用程序启动并刷新客户端上的令牌时,我是否应该使用新的FB令牌重新验证我的服务器?通过服务器到服务器的调用刷新用户FB令牌怎么样?如果我想保持对用户FB数据的访问,但用户停止使用我的或使用它太少,我应该这样做吗

有没有一本工作计划的食谱能很好地发挥作用


谢谢

Facebook令牌安全

您在移动应用程序客户端上创建的令牌用于您在身份验证中为其提供ID的Facebook应用程序。当通过互联网或任何其他易变信息传递令牌时,我总是使用HTTPS

Facebook代币到期和刷新

当您在移动应用程序中进行身份验证时,您通常会在使用令牌的响应中获得令牌的过期时间。令牌过期在中进行了解释

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

关于刷新令牌:

即使是长寿命的访问令牌最终也会过期。在任何时候,您都可以通过将此人发送回您的web应用程序使用的登录流来生成一个新的长寿令牌-请注意,此人实际上不需要再次登录,他们已经授权了您的应用程序,因此,他们将立即使用刷新的令牌从登录流重定向回您的应用程序-这对用户的显示方式将根据您使用的登录流类型而有所不同,例如,如果您使用的是JavaScript SDK,这将在后台发生,如果您使用的是服务器端流,浏览器将快速重定向到登录对话框,然后自动立即再次返回到您的应用程序


你在这里找到有用的东西了吗?