node.js - 使用 passport-facebook-token 进行用户注册羽毛身份验证
问题描述
我正在尝试允许用户通过“使用 facebook 登录”注册我的服务。
我已经完成了箭头 1-2。我需要做箭头 3-6。我在https://github.com/morenoh149/feathers-chat-facebook-signup-api做了一个最小的 Feathersjs 示例
我似乎无法获得羽毛身份验证和护照脸书令牌来生成用户对象并注册它们。我已经仔细审查了护照-facebook-token。这个答案解释了在对 passport-facebook-token 的回调中,您应该创建 User 对象。我如何使用羽毛身份验证来做到这一点?
当我在正文中提供令牌时
curl localhost:3030/authentication \
--data-binary '{\
"strategy": "facebook-token", \
"access_token": "<phone token>" \
}'
我明白了
{"name":"NotAuthenticated",
"message":"You should provide access_token","code":401,
"className":"not-authenticated",
"data":{"message":"You should provide access_token"}
当我将令牌作为标题传递时
curl localhost:3030/authentication \
-X POST \
-H "Authorization: Bearer <access token>"
我收到错误
{"name":"GeneralError",
"message":"Cannot read property 'toLowerCase' of undefined",
"code":500,"className":"general-error","data":{},"errors":{}}
解决方案
所以我下载并运行了 repo,我使用 VSCode 来运行应用程序并设置断点。我在创建用户之前的钩子中创建了一个断点。
这里的问题是 gravatar 钩子应该是电子邮件,context.data
但它实际上嵌入在 facebook 响应中。您将需要查看从该数据中提取电子邮件,以便您可以创建一个 gravatar 或完全删除 gravatar 挂钩。
推荐阅读
- javascript - 为什么代码可以在 JSfiddle 上运行,但不能在我的 PC 上运行?(滚动)
- google-sheets - 我可以一次保护范围 2 或 3 单元格吗?
- pytest - Pytest测试是方法抽象
- azure-notificationhub - 格式化从 Azure 通知中心发送的通知
- typescript - 定义可以具有不同结构的对象参数的类型
- karate - 匹配输入和输出的空手道问题
- spring - 如何将未经 Envers 审计的字段添加到审计表
- r - 如何在R中读取具有不同列数的多个txt文件
- laravel - Laravel 5.8无法在路径中找到文件
- python - 循环列表 - 这两种方法有区别吗?