我想作为描述的实施手动Facebook登录流程:Facebook登录重定向:不完整的URL
https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow
,其中在用户登录和授权应用程序步骤都好。当Facebook重定向到我的服务时(成功登录后),问题就开始了;我可以在浏览器的地址栏像看到:
http://some.local.domain:8080/1/share/fb_login_redirect?#access_token=XXYYZZ&expires_in=6285
但奇怪的是我的web服务只能“看见”:“?”
http://some.local.domain:8080/1/share/fb_login_redirect
我认为这是刚刚经过“#”符号引起。因此我无法通过查询字符串获得access_token
。
我的web服务是一个Python WSGI应用程序。我已经用gunicorn
和wsgiref.simple_server
进行了测试。我已经调试了WSGI环境字典,并且发现部分URL正在被传递(而不是带有查询参数的完整URL)。所以当浏览器向WSGI环境传递请求信息时,这似乎是个问题。顺便说一句,我已经在Chrome和Firefox上测试过;我正在使用MacOS X 10.10.5。
我将不胜感激任何帮助。
谢谢。
URL的哈希部分是纯粹的客户端构造,它永远不会发送到服务器。您需要捕获访问令牌客户端(JavaScript),或者在登录对话框调用中选择“response_type:code”。 – CBroe
您应该提交作为答案,@CBroe –