我有一个ember-cli应用程序,它使用ember-simple-auth和torii对fb进行身份验证。该过程完成后,我最终会得到一个身份验证代码。
我还有一个使用 Node/Sails/Waterlock 构建的 API
我以为我可以使用Waterlock facebook身份验证将此代码推送到
http://my-node-app.com:1337/auth/facebook_oauth2?code={{一些代码}}
然后允许它与FB握手,获取我的个人资料信息,创建我的用户并登录我。
我认为如果我已经通过 API 注册了,并且它确实在 API 上登录了我,除了没有用户数据,没有 fb id 什么都没有,这就可以了。
使用有效代码调用上述 URL 的响应为:
{
auth: {
facebookId: null,
name: null,
createdAt: "2015-01-10T15:05:44.417Z",
updatedAt: "2015-01-10T15:05:44.459Z",
id: 10,
user: 10
},
createdAt: "2015-01-10T15:05:44.447Z",
updatedAt: "2015-01-10T15:05:44.447Z",
id: 10
}
这是/users 的结果
{
users: [
{
attempts: [
12
],
jsonWebTokens: [ ],
auth: 10,
createdAt: "2015-01-10T15:05:44.447Z",
updatedAt: "2015-01-10T15:05:44.447Z",
id: 10
}
]
}
我应该能够做到这一点吗?或者我是否需要在 api/auth/login?type=facebook url 上显式注册用户?
[更新]
看看这里的代码 https://github.com/waterlock/waterlock-facebook-auth/blob/master/lib/controllers/actions/oauth2.js 看起来我是对的......
操作中的第一个调用是:
fb.confirmIdentity(req.query.code, accessTokenResponse);
在accessTokenResponse
内部,它会调用fb.getMe(userInfoResponse);
在userInfoResponse中调用主水锁框架引擎.js以存储用户...
所以从我的挖掘来看,这应该可以工作...我不知道它掉在哪里。
这按预期工作,只是水锁没有返回传递给它的 fb 错误()。我创建了一个拉取请求,以便更容易调试此类问题。
https://github.com/waterlock/waterlock-facebook-auth/pull/3