2017-11-21 5 views
5

Safari가 실제로 내 이메일 주소로 비밀번호 재설정 토큰 (ID는 user_reset_password_token이고 이름은)을 나타 내기위한 HIDDEN 양식 필드를 덮어 씁니다.Safari 자동 완성 숨김 "암호 재설정 토큰"입력

토큰이 정확하지 않을 때 암호 재설정이 작동하지 않아 문제가 발생합니다.

Safari에서 자동 완성을 사용 중지하거나 Safari 이외의 브라우저를 사용하면 정상적으로 작동하는 것으로 확인되었습니다.

누구에게이 문제의 해결책이 있습니까?

+1

하면 자동으로 사파리를 입력 해제에 만족하지 :

= f.hidden_field :reset_password_token, readonly: true 

그래서 난이있어 :이 같은 내 숨겨진 입력 readonly 속성을 추가로 문제를 해결? – Swellar

+1

물론 아닙니다! 그게 무슨 문제인지 알면 저에게는 해결책이 될 수 있지만 내 사용자는 어떻게됩니까? 대부분의 사람들은 자동 완성 기능을 사용한다고 가정합니다. – elsurudo

답변

0

그렇게하기위한 실제적인 깨끗한 방법은 없습니다. 한 가지 해결 방법은 사파리가 사용자 입력이 아닌 자동 입력이되도록하기 전에 가짜 입력을 사용하는 것입니다. 예를 들어 같은 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"> 

레일 (사용 폼 헬퍼) :

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

불행히도 사파리는 자동 완성 속성을 무시합니다. – enjaku

1

같은 문제가있었습니다.

<input id="user_reset_password_token" name="user[reset_password_token]" readonly="readonly" type="hidden" value="YXHRuRgppyzxqsdEXiNm">