我正在http://example.com:3000
的服务器上运行一个流星应用,试图通过Facebook使用accounts-facebook
进行授权。
我的HTML看起来像这样:
<head>
<title>appname</title>
</head>
<body>
<h1>Welcome to Meteor!</h1>
{{> hello}}
</body>
<template name="hello">
<button>Click Me</button>
{{>loginButtons}}
{{#if currentUser}}
Logged in
{{/if}}
</template>
我已启用accounts-ui
和accounts-facebook
。我经历了Facebook应用注册流程。以下是我的基本设置:
我的高级设置是默认设置,我已经切换了“您想让这个应用及其所有实时功能向公众开放吗?”现状与发展的评价。
当我实际尝试使用Facebook登录时,授权窗口会重定向到http://localhost:3000/_oauth/facebook?code=AQBaOoQ8XVQvzdqH8dyF03vVVP3daO9UO-tB0IZYCsYOYxL0LFWVrZUt2Rh34I2HI8Y5kofDP8sj46dn--N1pk6h0WOfoLAoaZxJzwSjocmBrRowjGv8JWcyN42msFuUdQAxQzbyrhnE2mQFUQISBOVzbnsR20ozS1pUmSdCb9BbmbidS8NvKvtEmSXm1lh9zPH7DYG4KfWQ2yIWSO8JMLEWa04TOP5rLDc75ak4WfXr1emb25T7981HUL8pCF_d_NgbFCNojoyY2yIB80e1nHxhovr-V3UWcCrNjH8aljTxy-qVGCmuLa4GravNIRfy9I8&state=eyJsb2dpblN0eWxlIjoicG9wdXAiLCJjcmVkZW50aWFsVG9rZW4iOiJlUkpSQjRja0FqVmJTWklCajhvQ01IdGlVdkktNnBXcF81d0RGR3Rod1lDIn0%3D#_=_
,这不是有效的地址,因为服务器是远程运行和访问的。
另外(我认为最有问题的),页面不承认任何授权已经发生,并且登录失败的行为(所以我认为它已经失败)。
谁能告诉我我做错了什么?谢谢!
答案 0 :(得分:10)
要让Meteor尝试从Facebook登录重定向到正确的登录页面(托管在example.com
,而不是localhost
),我需要让Meteor承认它正在{{1}上运行},而不是example.com
。这样做的方法是设置环境变量localhost:3000
。
关于bash:
ROOT_URL
如果您在example.com上的端口3000上运行该站点,请务必将其放在export ROOT_URL=http://example.com:3000
或等效内容中,以使会话之间的环境变量保持不变。
答案 1 :(得分:3)
检查“高级”标签上的重定向URI。
应该是这样的:http://localhost:3000/_oauth/facebook
不喜欢这样:http://localhost:3000/_oauth/facebook?close
答案 2 :(得分:1)
让我们尝试一下。
首先通过
我的应用&gt;测试应用
现在在右上角有一个绿色按钮
create a test app
现在显示某种模式,Test App Name
和Test App Namespace
,选择您想要的任何名称
<强>第一强>
基本上的完成此2个选项
现在在App Domains上选择
localhost:3000
并在网站网址上。
localhost:3000
以及高级,有效OAuth重定向URI
http://localhost:3000/sessions/create
<强>第二强>
<{1>}上的,添加此代码。
/server/facebook-config.js for example
它应该可行
答案 3 :(得分:1)
SSLProxy
进行了自签名SSL证书,我错误地认为你可以在回调URL中添加自定义路由,所以我必须做几件事:
export ROOT_URL=https://localhost:3100; meteor --settings settings-development.json --port 3100
导航至FB App in developer.facebook.com => Facebook Login => Settings => Client OAuth Settings
并添加以下网址:
这是FB App in developer.facebook.com => Settings => Advanced => Domain Manager
+999999到River Tam for FireFly参考:P