条纹 OAuth - 重定向 URL = "No route matches [GET] "/oauth/callback"

Stripe OAuth - redirect URL = "No route matches [GET] "/oauth/callback"

当托管在 Heroku 上时,我的 Stripe Connect 重定向 URL 遇到了一些问题。

运行 在本地,一切都按预期工作,用户连接到 OAuth,将他们的可发布密钥保存到数据库,然后正常通过站点进行。

然而,在 Heroku 上,用户通过 OAuth 连接到 Stripe,输入他们的详细信息和密码,然后在重定向时,他们会收到以下错误消息:

Heroku | No such app
There is no app configured at that hostname.
Perhaps the app owner has renamed it, or you mistyped the URL.

文档到目前为止没有帮助,我在 Stack Overflow 上也找不到类似的东西。

条纹详细信息:

生产重定向 URI:https://www.hidden-hamlet-51741.herokuapp.com/oauth/callback

我试过一些变体,但没有成功。

Heroku 日志:

2016-03-23T13:23:37.799909+00:00 heroku[router]: at=info method=GET path="/users/auth/stripe_connect" host=hidden-hamlet-51741.herokuapp.com request_id=4d52e646-6d02-45be-87e6-7492665c4d17 fwd="86.138.166.211" dyno=web.1 connect=2ms service=19ms status=302 bytes=1549
    2016-03-23T13:23:37.796546+00:00 app[web.1]: Started GET "/users/auth/stripe_connect" for 86.138.166.211 at 2016-03-23 13:23:37 +0000
    2016-03-23T13:23:37.799240+00:00 app[web.1]: I, [2016-03-23T13:23:37.799170 #3]  INFO -- omniauth: (stripe_connect) Request phase initiated.
    2016-03-23T13:30:57.289321+00:00 app[web.1]: Started GET "/users/auth/stripe_connect" for 86.138.166.211 at 2016-03-23 13:30:57 +0000
    2016-03-23T13:30:57.306551+00:00 app[web.1]: I, [2016-03-23T13:30:57.306458 #3]  INFO -- omniauth: (stripe_connect) Request phase initiated.
    2016-03-23T13:30:57.309718+00:00 heroku[router]: at=info method=GET path="/users/auth/stripe_connect" host=hidden-hamlet-51741.herokuapp.com request_id=e7805fd0-3973-4a27-b842-433e1dbb1532 fwd="86.138.166.211" dyno=web.1 connect=2ms service=30ms status=302 bytes=1549

将我的 Production.rb 文件更改为 "config.consider_all_requests_local = true" 并再次推送到 Heroku 后,收到以下错误消息:

No route matches [GET] "/oauth/callback"

我的 Stripe OAuth 相关路由如下所示:

user_omniauth_authorize GET|POST /users/auth/:provider(.:format)        omniauth_callbacks#passthru {:provider=>/stripe_connect/}
user_omniauth_callback GET|POST /users/auth/:action/callback(.:format) omniauth_callbacks#(?-mix:stripe_connect)
stripe_connect GET      /stripeconnect(.:format)               groups#stripe

任何指示都会非常有帮助。

谢谢。

您是否将 www 配置为 hidden-hamlet-51741 的子域?如果不是,那么您需要从生产重定向 URI 中删除 www。它应该是这样的:

https://hidden-hamlet-51741.herokuapp.com/oauth/callback

答案:

我的 Stripe 仪表板上的重定向 URL 不正确,/oauth 而不是 /auth,一个简单的脑洞。

然后在更改它之后,我不得不 运行 "figaro heroku:set -e production",我在 SO 的某处找到了它,它将所有变量的值设置为生产,文档中有更多详细信息 - https://github.com/laserlemon/figaro

谢谢大家,