【问题标题】:Rails w/ Devise, Confirmation token not working on productionRails w / Devise,确认令牌不适用于生产
【发布时间】:2014-07-14 01:47:02
【问题描述】:

我有一个使用带有可确认电子邮件的 Devise 的 rails 应用程序。电子邮件发送良好,确认链接在开发中完美运行。但是在 Heroku 上的生产中,它根本不起作用。

再次,电子邮件在生产中发送正常,生成令牌,但单击时,页面仅重定向到“重新发送确认说明”页面。生产中是否缺少一些东西来完成这项工作?有什么建议或帮助吗?

这是我的开发日志:

Started GET "/users/confirmation?confirmation_token=SusKNC1PyZ4ayJxL9asR" for 127.0.0.1 at 2014-07-13 21:32:02 -0400
Processing by Devise::ConfirmationsController#show as HTML
  Parameters: {"confirmation_token"=>"SusKNC1PyZ4ayJxL9asR"}
  User Load (0.9ms)  SELECT  "users".* FROM "users"  WHERE "users"."confirmation_token" = '28535b0ce6b4cb809463749ccad8ae0c8e92f6e7ce6ea2b9262dc6be87eb1fff'  ORDER BY "users"."id" ASC LIMIT 1
   (0.1ms)  BEGIN
  SQL (0.9ms)  UPDATE "users" SET "confirmation_token" = $1, "confirmed_at" = $2, "updated_at" = $3 WHERE "users"."id" = 3  [["confirmation_token", nil], ["confirmed_at", "2014-07-14 01:32:02.960080"], ["updated_at", "2014-07-14 01:32:02.960674"]]
   (0.5ms)  COMMIT
Redirected to http://localhost:3000/users/sign_in

这是我来自 Heroku 的日志

2014-07-14T01:36:05.606623+00:00 heroku[router]: at=info method=GET path="/users/confirmation" host=www.———.— request_id=76de591e-0948-4b89-93b1-eeb9431b2b9c fwd="72.229.255.68" dyno=web.1 connect=2 service=18 status=304 bytes=1218
2014-07-14T01:36:05.585691+00:00 app[web.1]: Started GET "/users/confirmation" for 72.229.255.68 at 2014-07-14 01:36:05 +0000
2014-07-14T01:36:05.594512+00:00 app[web.1]:   Rendered devise/shared/_links.html.haml (0.5ms)
2014-07-14T01:36:05.594570+00:00 app[web.1]:   Rendered devise/confirmations/new.html.haml within layouts/application (3.1ms)
2014-07-14T01:36:05.596841+00:00 app[web.1]:   Rendered layouts/_header.html.haml (1.1ms)
2014-07-14T01:36:05.588617+00:00 app[web.1]: Processing by Devise::ConfirmationsController#show as HTML
2014-07-14T01:36:05.597479+00:00 app[web.1]: Completed 200 OK in 9ms (Views: 6.3ms | ActiveRecord: 0.0ms)

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 heroku devise


    【解决方案1】:

    我在生产中遇到了同样的错误:“确认不能为空白”,即使它在我的本地机器上工作。对我来说,问题是 WWWhisper 的免费帐户不允许未经授权的访问,并将电子邮件确认链接视为未经授权。

    【讨论】:

    • 这是为我做的。
    【解决方案2】:

    我太笨了,我提交后才解决这个问题。问题出在我的网址上。我在我的 production.rb 文件中输入了根域以进行 smtp 设置。但我实际上也有一个根域重定向的 www url。呃

    【讨论】:

    • 嗨,斯科特,请您进一步扩展您的解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 2016-01-06
    • 1970-01-01
    • 2013-12-09
    • 2019-07-11
    • 2018-12-15
    相关资源
    最近更新 更多