【问题标题】:Auth0 - Callback URL never calledAuth0 - 从未调用过回调 URL
【发布时间】:2017-02-27 21:28:46
【问题描述】:

我正在将 Auth0 集成到现有的客户端项目中,并且在从 Auth0 登录后回调 url 出现了一些问题。

问题在于,当调用回调 URL 时,id_token 和 access_token 仅在哈希片段中可用,而在查询字符串中不可用。为了让它可用于服务器,我需要在查询字符串中使用它。

我的 responseType 是“代码”类型:

this.auth0 = new Auth0({
  clientID: clientId,
  domain: domain,
  responseType: 'code',
  callbackURL: 'http://mydevserver:3000/callback'
});

所以问题是,我怎样才能在查询字符串中包含 id_token 和 access_token?

https://auth0.com/docs/tutorials/local-testing-and-development#auth0-and-localhost

【问题讨论】:

    标签: javascript authentication auth0


    【解决方案1】:

    如果没有您使用的实际代码,我们将不得不进行一些猜测,但是当您使用token 的响应类型时,哈希片段上会返回id_tokenaccess_token。这是针对基于浏览器的应用程序,因此可以访问 URL 片段。

    如果您的应用程序是传统的服务器端 Web 应用程序,您应该使用 code 响应类型,以便将授权代码作为查询字符串的一部分发送到您的服务器端。然后在服务器端,您可以发出请求以将此代码交换为实际令牌。

    这两种类型的流在 OAuth 2.0 规范中定义:

    • Implicit granttoken 响应类型(针对基于浏览器的应用程序)
    • Authorization code grantcode 响应类型(针对机密客户端,如服务器端 Web 应用程序)

    作为参考,您可以按照此文档完成您提到的操作:Integrating a Web App with Auth0

    【讨论】:

    • 感谢您的回答,我更新了我的问题。事实上,我正在使用 responseType 'code',但似乎没有任何变化。 Auth0 中是否需要其他配置?
    • 确保在 Auth0 仪表板中,客户端应用程序在 客户端类型 设置中配置为 常规 Web 应用程序。如果这没有帮助,请共享与身份验证设置相关的所有代码。请务必删除/替换敏感信息。
    • 我发现问题是在您的 React 文档中,前端的 Login 方法和 AuthService 中间件上都有 responseType。我只是将其中一个更新为“代码”,而没有看到另一个。再次感谢
    • 很高兴这是排序的,是的,这是正确的,将响应类型传递给 login 方法将覆盖提供给 Auth0 构造函数的值。
    猜你喜欢
    • 2019-10-20
    • 2020-03-03
    • 2017-12-09
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多