我试着浏览了Webtask.io提供的文档,但无法使用使用Auth0保护的webhook。
我使用nodejs创建了Auth0登录应用程序,然后尝试调用webhook url,但出现了401错误。
以下是我登录Auth0应用程序后得到的响应。
承载{ access_token:' DcapxdbV35rBXQ9P ',expires_in: 86400,id_token: DcapxdbV35rBXQ9P:‘'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoidGVjaCBpbmN1YmF0b3IiLCJlbWFpbCI6InRlY2hpbmN1YmF0b3IuaHNwbEBnbWFpbC5jb20iLCJlbWscFpbF92ZXJpZmllZCI6dHJ1ZSwicGljdHVyZSI6Imh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS8tWGRVSXFkTWtDV0EvQUFBQUFBQUFBQUkvQUFBscsacQUFBQUFBQUEvNDI1MnJzY2J2NU0vcGhvdG8uanBnIiwiaXNzIjoiaHR0cHM6Ly90ZWNoaW5jdWJhdG9yLmF1dGgwLmNvbS8iLCJzdWIiOiJnb29nbGUtb2F1dGgyfDEwMzc5MTcwODM5Nzk5MjU0ODA4NiIsImF1ZCI6IkE4NEI5WEZVdHg3Z29jQk5FVnpueFBlbUdNTG9VUHdCIiwiZXhwIjoxNDg4NDE2NzQzLCJpYXQiOjE0ODgzODA3NDN9.lHyj0RszUhY0yaQ0QeTDNt0KYVMI_cRgy3Qp-x5lNnQ',token_type:’DcapxdbV35rBXQ9P‘}
我使用了Authorization header,并将id_token值作为'Bearer + token‘传递给它,以调用webhook。
我仍然不能访问webhook。
你能帮帮忙吗?
发布于 2017-03-02 19:24:11
请您解释一下您的情况--您是说您有一个本地node.js应用程序,并且希望调用一个部署为Webtask的应用程序接口(无UI组件)吗?并且您正尝试将JWT访问令牌从本地node.js应用程序发送到此API端点?
我在您的响应中看到的第一个问题是,访问令牌是opaque -您需要一个作为JWT (Json Web Token)的访问令牌
为此,您需要在您的Auth0仪表板中定义一个API -(如果尚未启用,请在account settings -> advanced -> Enable APIs Section下查看并确保其处于打开状态)。定义一个新的应用程序接口,如果您使用这些scopes来保护您的应用程序接口端点,则为其提供任何API。然后确保将audience属性添加到为登录提供的参数中-如果使用这两个库,Lock / auth0.js库也支持此属性。应该将Audience值设置为您在Auth0仪表板中定义Identifier时提供的API属性值。
建议您通读API Authorization上的Auth0文档
具体地说,就是针对node.js场景的Calling APIs from Server-side Web Apps。一旦您拥有了所需的JWT访问令牌,您就可以使用Authorization: Bearer {JWT TOKEN}头将其发送到您的API端点。您的API应该读取JWT访问令牌,检查其有效性(主题、过期等)。
如果这对你有意义,请让我知道,并随时在下面的评论部分留下问题。感谢,在你第一次经历这个过程时,它看起来似乎很难,但实际上,它只需要不到2分钟的时间就能完成。
https://stackoverflow.com/questions/42552516
复制相似问题