2017-11-21 20 views
5

Safariは、実際にはパスワードリセットトークン(IDはuser_reset_password_token、名前はuser[reset_password_token])を表す電子メールアドレスを持つHIDDENフォームフィールドを上書きしています。Safariのオートフィル隠し「リセットパスワードトークン」入力

トークンが間違っているとパスワードをリセットできないため、問題が発生しています。

私は、Safariで自動入力を無効にするか、Safari以外のブラウザを使用すると問題なく動作することを確認しました。

誰にもこの問題の解決策がありますか?

+1

あなたはSafariでオートフィルを無効に満足していませんか? – Swellar

+1

もちろん、そうではありません!それは問題の内容を知っているので私の解決策ですが、ユーザーはどうですか?私はほとんどの人が自動入力機能を有効にしていると仮定しています。デフォルトでは... – elsurudo

答えて

0

これを行うには本当にクリーンな方法はありません。 回避策の1つは、その前に偽の入力をして、サファリがあなたの入力ではなく自動入力されるようにすることです。例えばそのような somethink:

<input id="fake_password" name="fake_user[password]" style="position:absolute; top:-100px;" type="text" value="Safari Autofill Me"> 

top-100px表示するので、この入力を非表示にするにはここにある:どれもいくつかのケースでオートフィルを防ぐことはできません...

0
隠しフィールドのための

無効にオートコンプリート:

HTML:(フォームヘルパーを使用して)

<input name="reset_password_token" type="hidden" autocomplete="off"> 

のRails:

<%= f.hidden_field :reset_password_token, autocomplete: 'off' %> 
+0

残念ながら、Safariはオートコンプリート属性を無視します – enjaku

1

ちょうど同じ問題がありました。私はこのように、私の隠された入力にreadonly属性を追加することで問題を解決:

= f.hidden_field :reset_password_token, readonly: true 

はので、私はこれを持っている:

<input id="user_reset_password_token" name="user[reset_password_token]" readonly="readonly" type="hidden" value="YXHRuRgppyzxqsdEXiNm"> 
関連する問題