ruby基礎功能 使用者登入持久化

2021-10-06 04:22:47 字數 1297 閱讀 2733

session 中的資料是臨時性的,不能實現類似remember me 這樣的功能

故用cookie來實現,在cookie中新增乙個令牌來表明使用者的身份

新增乙個auth_token 欄位到user表來記錄使用者令牌

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 若勾選了 ...

測試「使用者登入」功能

如何測試 使用者登入 功能?我認為可以從功能性和非功能性兩個維度去思考。關於功能測試,首先可能會根據 使用者登入 功能的需求描述,結合等價類劃分和邊界值分析方法來設計測試用例。包括 輸入已註冊的使用者名稱和正確的密碼,驗證是否登入成功 輸入已註冊的使用者名稱和不正確的密碼,驗證是否登入失敗,並且提示...