2016-06-16 8 views
0

私はレールアプリケーションを持っており、認証にdeviseを使用しています。私は、パスワードをリセットするための電子メールが実稼働中に通過すると、パスワードをリセットするリンクが壊れ、ルートURLにリダイレクトすることに気付きました。電子メールのリンクが壊れています

開発中にサインインページに移動すると、有効なトークンなしでこのページにアクセスできず、完全なURLを提供する必要があるというフラッシュメッセージが表示されます。

私は電子メールの外観をカスタマイズしていますが、私はリンクを生成するためにdeviseメソッドを使用しています。 2つの別々の行に http://localhost:3000/users/password/edit?reset_pass= word_token=3DQaz7y_f63yR3MZmReUY5

を:サーバログから観察されるように、次のようにそれは来ているが

このedit_password_url(@resource, reset_password_token: @token) %>は、理想的には http://localhost:3000/users/password/edit?reset_password_token=[GENERATED_TOKEN]

として開発環境で出てくるはずです。私はsendgridを使っていますので、リンクを調べてURLが生成されているのを見ることはできません。

私はまた、すべての=兆候がいくつかの提案を楽しみにしてい=3D

に変換されることに注意してください。それ以上データを提供する必要がある場合は、私に知らせてください。

+0

mailer URLをproduction.rbファイルに変更しましたか? – Emu

+0

'production.rb'では' default_url_options'が私のアプリケーションのURLに設定されています –

+0

行の折り返しと%3dはほぼ確実に赤い文字列です:それはprintable(電子メールに使われたエンコーディングの1つ)です。 –

答えて

0

転送コードとは関係がないことが判明しました。 受信側では、コンテンツ転送エンコードにもかかわらず、URLが完全に解決されます。

私はリンクを自動生成していたので、生成され、httpリンクとして送信されました。私はいくつかの問題を解決するためにそこに追加したページルールhttps以上のすべてのトラフィックをリダイレクトするCDNを使用していますが、このhttpリンクがhttps、最終的にアプリケーションルートにリダイレクトされていました。これが問題の原因となっています。

httpsで絶対URLを生成する必要があります。

関連する問題