2015-11-06 52 views
0

如果用戶選中記住我複選框,我已經要求自動填充電子郵件和密碼以自動填充登錄表單用戶登錄表單。當用戶檢查記住我時,自動在Web瀏覽器中填充電子郵件和密碼

正如我通過檢查一些文件和谷歌搜索我得到了一些理解,這是瀏覽器的行爲。並且是用戶接受瀏覽器自動彈出來用來獲得用戶接受以保存用戶信息。

我開始知道,設計使瀏覽器將值存儲在緩存中,並且即使瀏覽器關閉,管理會話也會繼續。

因爲我必須努力,可以讓你們中的任何一個人向我展示正確的道路,或者建議我在可能的情況下實現這一目標。

+1

如果您實現您的應用程序正確的說,它不應該是可能的(因爲你沒有密碼以明文形式)。你是對的,這是客戶瀏覽器(或其擴展)的工作。這裏沒有什麼可以幫你的。 –

+1

__exactly__的要求是什麼?在關閉標籤頁/瀏覽器後自動填充密碼字段或不註銷用戶? –

+0

你好Serigo,感謝您的回覆, 我的要求是自動填充電子郵件和密碼到各自的領域。當用戶登錄頁面時,即使他已經檢查記住我複選框,他上次從同一瀏覽器登錄時登錄到登錄頁面。 – sravan44

回答

0
使用用戶名和密碼字段

通常我們必須記得我:

<%= 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> 
+0

你好Sadaf,謝謝你的回覆。 因爲我想填寫表格的電子郵件和密碼字段,即使我將它們保存在cookie中,我認爲我不能將它們填充到表單的字段中,這是確切的要求 – sravan44

+0

我認爲您可以。只需將它們從cookie中取出並更改您的值即可! – sadaf2605

+0

在cookie中放置明文密碼 - 哦,我的。 –

相關問題