Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用子域处理facebook登录?_Javascript_Node.js_Amazon Cloudfront_Facebook Authentication - Fatal编程技术网

Javascript 如何使用子域处理facebook登录?

Javascript 如何使用子域处理facebook登录?,javascript,node.js,amazon-cloudfront,facebook-authentication,Javascript,Node.js,Amazon Cloudfront,Facebook Authentication,我的应用程序客户端使用aws cloudfront/s3提供服务www.example.com 我的服务器端是ec2中的nodejsapi.example.com 我想用facebook登录 我将facebook设置为在登录到api.example.com/api/facebook/return后重定向 现在,当我打开api.example.com/api/facebook/return时,我需要返回我的应用程序www.example.com,使用用户loggedin 怎么做 我不想使用lam

我的应用程序客户端使用aws cloudfront/s3提供服务<代码>www.example.com

我的服务器端是ec2中的nodejs<代码>api.example.com

我想用facebook登录

我将facebook设置为在登录到
api.example.com/api/facebook/return
后重定向

现在,当我打开
api.example.com/api/facebook/return
时,我需要返回我的应用程序
www.example.com
,使用用户loggedin

怎么做

  • 我不想使用lambda(假设这不是我的解决方案)
  • 我无法访问localStorage来存储令牌,并且用户-因为safari不支持
    Hub
    访问另一个localStronge域
  • 无法使用cookie,因为我有LoadBalancer和无状态服务器
  • 我尝试向客户端发送一个10秒令牌,然后返回服务器(确认令牌),然后返回客户端(访问令牌)。 但有时电脑速度慢,我会过期

我在考虑一次性令牌,但是如何实现这样的事情呢?或者还有其他想法如何处理?

这正是我最近在应用程序中使用的流程,你可以做两件事,1
api.example.com/api/facebook/return
和return一起,您将从facebook获取参数中的身份验证码,该代码应用于获取访问令牌,获取访问令牌后,重定向到应用程序主屏幕,并在参数中包含访问/刷新令牌。2.使用auth_代码从返回URL重定向到您的应用程序,并让客户端应用程序获取accessTokens/RefreshTokens。但我需要使用用户loggedin进入主屏幕。我的意思是,当我重定向到我的主屏幕时,我看到我登录了。-这是我如何做到的?是的,只有当你从Facebook登录时,你才能获得accessToken,如果您的参数中有accessToken,并且使用accessToken可以获取有关该用户的更多详细信息,则可以假定该用户已经登录。但此验证代码需要检查一次。在那之后,它必须是无效的。知道怎么做吗?默认情况下,使用一次后的身份验证代码将变得无效,并且没有人可以再次使用相同的身份验证代码来生成accessToken。此外,如果您使用第一种方法,您将直接在客户端应用程序中获得访问令牌,并且不必担心身份验证代码无效。