如何保护Webtask.io webhook?

时间:2017-03-02 10:13:06

标签: json jwt webhooks auth0

我尝试浏览Webtask.io提供的文档,但无法使用使用Auth0保护的webhook。

我使用nodejs创建了Auth0登录应用,然后尝试调用webhook网址,但我收到了401错误。

以下是我在登录Auth0应用程序后得到的响应。

DcapxdbV35rBXQ9P {access_token:'DcapxdbV35rBXQ9P',   expires_in:86400,   id_token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoidGVjaCBpbmN1YmF0b3IiLCJlbWFpbCI6InRlY2hpbmN1YmF0b3IuaHNwbEBnbWFpbC5jb20iLCJlbWscFpbF92ZXJpZmllZCI6dHJ1ZSwicGljdHVyZSI6Imh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS8tWGRVSXFkTWtDV0EvQUFBQUFBQUFBQUkvQUFBscsacQUFBQUFBQUEvNDI1MnJzY2J2NU0vcGhvdG8uanBnIiwiaXNzIjoiaHR0cHM6Ly90ZWNoaW5jdWJhdG9yLmF1dGgwLmNvbS8iLCJzdWIiOiJnb29nbGUtb2F1dGgyfDEwMzc5MTcwODM5Nzk5MjU0ODA4NiIsImF1ZCI6IkE4NEI5WEZVdHg3Z29jQk5FVnpueFBlbUdNTG9VUHdCIiwiZXhwIjoxNDg4NDE2NzQzLCJpYXQiOjE0ODgzODA3NDN9.lHyj0RszUhY0yaQ0QeTDNt0KYVMI_cRgy3Qp-x5lNnQ',   token_type:'Bearer'}

我使用了Authorization标头并将id_token值作为'Bearer + token'传递给它来调用webhook。

仍然无法访问webhook。

你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

请你解释一下你的情况 - 你是说你有一个本地node.js应用程序,并希望调用一个部署为Webtask的API(没有UI组件)?您是否尝试从本地node.js应用程序向此API端点发送JWT访问令牌?

我在回复中看到的第一个问题是访问令牌为opaque - 您需要一个JWT (Json Web Token)的访问令牌

要实现这一点,您需要在Auth0仪表板中定义一个API - (如果尚未启用,请在account settings -> advanced -> Enable APIs Section下查看并确保其切换为ON)。定义一个新API,如果您使用这些API来保护您的API端点,则为其提供任何scopes。然后确保将audience属性添加到您为登录提供的参数中 - 如果使用它们,两个Lock / auth0.js库也支持此属性。 Audience值应设置为您在Auth0信息中心中定义API时提供的Identifier属性值。

建议您通读API Authorization

上的Auth0文档

特别是您的node.js场景Calling APIs from Server-side Web Apps。获得所需的JWT访问令牌后,您可以使用Authorization: Bearer {JWT TOKEN}标头将其发送到API端点。您的API应该读取该JWT访问令牌,检查其有效性(主题,过期等)。

请告诉我这是否对您有意义,并随时在下面的评论部分留下问题。在您第一次完成整个过程时,您可能会感到非常欣慰,实际上需要不到2分钟才能完成这项工作。