如果用戶選中記住我複選框,我已經要求自動填充電子郵件和密碼以自動填充登錄表單用戶登錄表單。當用戶檢查記住我時,自動在Web瀏覽器中填充電子郵件和密碼
正如我通過檢查一些文件和谷歌搜索我得到了一些理解,這是瀏覽器的行爲。並且是用戶接受瀏覽器自動彈出來用來獲得用戶接受以保存用戶信息。
我開始知道,設計使瀏覽器將值存儲在緩存中,並且即使瀏覽器關閉,管理會話也會繼續。
因爲我必須努力,可以讓你們中的任何一個人向我展示正確的道路,或者建議我在可能的情況下實現這一目標。
如果用戶選中記住我複選框,我已經要求自動填充電子郵件和密碼以自動填充登錄表單用戶登錄表單。當用戶檢查記住我時,自動在Web瀏覽器中填充電子郵件和密碼
正如我通過檢查一些文件和谷歌搜索我得到了一些理解,這是瀏覽器的行爲。並且是用戶接受瀏覽器自動彈出來用來獲得用戶接受以保存用戶信息。
我開始知道,設計使瀏覽器將值存儲在緩存中,並且即使瀏覽器關閉,管理會話也會繼續。
因爲我必須努力,可以讓你們中的任何一個人向我展示正確的道路,或者建議我在可能的情況下實現這一目標。
通常我們必須記得我:
<%= label_tag :remember_me %>
<%= check_box_tag :remember_me, 1, params[:remember_me] %>
<%= submit_tag "Log in" %>
當用戶點擊提交按鈕,如果我們所說的登錄操作,然後它通常是這樣的:
def login
user = User.find_by_email(params[:username])
if user && user.authenticate(params[:password])
if params[:remember_me]
cookies.permanent[:auth_token] = user.auth_token
else
cookies[:auth_token] = user.auth_token
end
redirect_to root_url, :notice => "Logged in!"
else
flash.now.alert = "Invalid email or password"
render "new"
end
end
現在,當你的用戶想要自動填充用戶名和密碼而不是自動登錄。那麼我認爲你不應該永久性地將這個標記保存到這樣的cookie中:cookies.permanent[:auth_token] = user.auth_token
,而不是像這樣把它放到cookies[:auth_token] = user.auth_token
。讓瀏覽器自動填寫登錄表單。
def login
user = User.find_by_email(params[:username])
if user && user.authenticate(params[:password])
if params[:remember_me]
cookies[:auth_token] = user.auth_token
else
cookies[:auth_token] = user.auth_token
end
redirect_to root_url, :notice => "Logged in!"
else
flash.now.alert = "Invalid email or password"
render "new"
end
end
如果你不想把它放在瀏覽器的手,那麼你可以做到以下幾點,儘管我不認爲你應該做的:
<%= form_tag sessions_path do %>
<div class="field">
<%= label_tag :email %>
<%= text_field_tag :email, @user.email %>
</div>
<div class="field">
<%= label_tag :password %>
<%= password_field_tag @user.password %>
</div>
<div class="field">
<%= label_tag :remember_me %>
<%= check_box_tag :remember_me, 1,remember_me %>
</div>
<div class="actions"><%= submit_tag "Log in" %></div>
如果您實現您的應用程序正確的說,它不應該是可能的(因爲你沒有密碼以明文形式)。你是對的,這是客戶瀏覽器(或其擴展)的工作。這裏沒有什麼可以幫你的。 –
__exactly__的要求是什麼?在關閉標籤頁/瀏覽器後自動填充密碼字段或不註銷用戶? –
你好Serigo,感謝您的回覆, 我的要求是自動填充電子郵件和密碼到各自的領域。當用戶登錄頁面時,即使他已經檢查記住我複選框,他上次從同一瀏覽器登錄時登錄到登錄頁面。 – sravan44