session 中的資料是臨時性的,不能實現類似remember me 這樣的功能新增乙個auth_token 欄位到user表來記錄使用者令牌故用cookie來實現,在cookie中新增乙個令牌來表明使用者的身份
rails g migration add_auth_token_to_users在建立user時為每個使用者生成乙個不重複的隨機字串來當令牌
before_create
def generate_token column
begin
self[column] = securerandom.urlsafe_base64
end while user.exists?(column => self[column])
end
之前由session儲存的使用者資訊改由cookie儲存
users_controller中:
def create_login_session
user = user.find_by_name params[:name]
if user && user.authenticate(params[:password])
#session[:user_id] = user.id
if params[:remember_me]
cookies.permanent[:auth_token] = user.auth_token #permanent 能夠持久化
else
cookies[:auth_token] = user.auth_token
endredirect_to :root
else
redirect_to :login
endenddef logout
# session[:user_id] = nil
cookies.delete(:auth_token)
redirect_to :root
end
def current_user
# @current_user = user.find session[:user_id] if session[:user_id]
@current_user ||= user.find_by_auth_token!(cookies[:auth_token]) if cookies[:auth_token]
end
完成登入功能,用session記住使用者名稱
登入功能完成 js 設定return html 設定form input onclick return fnlogin getpost讀取表單資料 查詢資料庫使用者名稱密碼對 記住使用者名稱 跳轉到首頁 使用者名稱密碼不對 提示相應錯誤。session 從 flask 中匯入 session 設定 ...
快速實現使用者許可權功能 使用者試用時限功能
一 顯示使用者登陸對話方塊 輸入引數 無返回值 登陸成功則返回使用者的許可權等級 登陸失敗則返回 1。功能說明 1 許可權等級從1開始,目前支援3級使用者許可權 一級許可權使用者可以進入使用者管理器介面。2 登陸失敗包括使用者名稱和密碼不正確 使用者名稱和密碼過期 使用者資料檔案丟失。3 若勾選了 ...
測試「使用者登入」功能
如何測試 使用者登入 功能?我認為可以從功能性和非功能性兩個維度去思考。關於功能測試,首先可能會根據 使用者登入 功能的需求描述,結合等價類劃分和邊界值分析方法來設計測試用例。包括 輸入已註冊的使用者名稱和正確的密碼,驗證是否登入成功 輸入已註冊的使用者名稱和不正確的密碼,驗證是否登入失敗,並且提示...