Mis*_*hko 2 authentication ruby-on-rails remember-me ruby-on-rails-3
在Rails 3应用程序中实现"记住我"功能的最佳实践是什么?
我在用户登录时将会话信息(会话ID +用户ID)存储在数据库中,此时我不想使用任何插件.
任何指针或代码示例将非常感激.
小智 8
您只需在已签名的Cookie上设置过期即可完成此操作.(签名的cookie就像Rails提供的sessioncookie 一样是防篡改的.)
class SessionsController < ApplicationController
def create
...
user = User.authenticate(params[:email_address], params[:password])
if params[:remember_me]
cookies.signed[:user_id] = { value: user.id, expires: 2.weeks.from_now }
else
# expires at the end of the browser session
cookies.signed[:user_id] = user.id
end
end
def destroy
cookies.delete :user_id
end
end
class ApplicationController < ActionController::Base
...
def current_user
User.find(cookies.signed[:user_id])
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5588 次 |
| 最近记录: |