2017-11-21 115 views
5

Safari thực sự ghi đè trường biểu mẫu HIDDEN được cho là đại diện cho mã thông báo đặt lại mật khẩu (ID là user_reset_password_token và tên là user[reset_password_token]) với địa chỉ email của tôi.Tự động điền Safari "reset password token" nhập

Như bạn có thể hình dung, việc đặt lại mật khẩu không hoạt động khi mã thông báo không đúng, vì vậy tôi gặp sự cố.

Tôi đã xác nhận rằng nó hoạt động tốt nếu tôi tắt tự động điền trong Safari hoặc sử dụng bất kỳ trình duyệt nào ngoài Safari.

Có ai có giải pháp cho vấn đề này không?

+1

Bạn không hài lòng với việc vô hiệu hóa tự động điền vào Safari? – Swellar

+1

Tất nhiên là không! Đó là giải pháp cho tôi vì tôi biết vấn đề là gì, nhưng còn về người dùng của tôi thì sao? Tôi cho rằng hầu hết mọi người đã bật tự động điền vì đây là mặc định ... – elsurudo

Trả lời

0

Không có cách nào thực sự sạch sẽ để làm điều đó. một cách giải quyết khác là có một đầu vào giả mạo trước đó để safari sẽ tự động điền nó và không nhập vào của bạn. somethink như vậy ví dụ:

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

Các top-100px là ở đây để ẩn đầu vào này, bởi vì display: none có thể ngăn chặn tự động điền trong một số trường hợp ...

0

Disable autocomplete cho lĩnh vực ẩn:

HTML:

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

Rails (sử dụng hình thức-helper):

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

tiếc là safari bỏ qua thuộc tính tự động điền – enjaku

1

Chỉ gặp vấn đề tương tự. Tôi giải quyết vấn đề với việc thêm readonly thuộc tính để nhập ẩn của tôi, như thế này:

= f.hidden_field :reset_password_token, readonly: true 

vì vậy tôi đã nhận điều này:

<input id="user_reset_password_token" name="user[reset_password_token]" readonly="readonly" type="hidden" value="YXHRuRgppyzxqsdEXiNm"> 
Các vấn đề liên quan