gpt4 book ai didi

ruby-on-rails - 如何在 Rails 3 中实现 "Remember Me"函数?

转载 作者:行者123 更新时间:2023-12-04 05:59:20 26 4
gpt4 key购买 nike

在 Rails 3 应用程序中实现“记住我”功能的最佳实践是什么?

我在用户登录时将 session 信息( session id + 用户id)存储在数据库中,此时我不想使用任何插件。

任何指针或代码示例将不胜感激。

最佳答案

您只需在已签名的 cookie 上设置过期时间即可完成此操作。 (签名的 cookie 是防篡改的,就像 Rails 提供的 session cookie。)

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

关于ruby-on-rails - 如何在 Rails 3 中实现 "Remember Me"函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7658011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com