Ahm*_*mza 5 ruby cookies ruby-on-rails devise ruby-on-rails-4
我正在处理一个Rails 4.2应用程序并使用devisegem进行身份验证.
对于remember_me功能,设计会生成一个cookie remember_user_token,之后会被破坏sign_out.
有没有这样的方法Devise不应该破坏remember_user_token?
我试着false在下面config的initializer
config.expire_all_remember_me_on_sign_out = false
但它没有帮助.
我在注销后需要cookie,以便填充登录表单.
请帮忙.
谢谢
Bha*_*han -1
这是 cookie 商店的真相。首先,一旦设置 cookie,或者直到用户以某种方式手动删除 cookie,cookie 中的所有内容都会永久存在。这意味着,如果您设置了 user_id 和 user_group_id,它将永远存在于 cookie 中,直到更新或删除。这与会话不同,因为会话就像计算机上的内存,一旦浏览器关闭,会话及其所有数据都会随之关闭。
因此,这意味着当您注销用户时,您需要指定他们的 cookie 清空您不希望其拥有的任何内容。当您的用户登录时,您可以设置您希望用户在登录时拥有的任何内容。因此,由于会话和 cookie 是完全独立的事物,因此除非您选择创建它们,否则它们永远不会一起交互。因此,除非您让它这样做,否则您的会话永远不会将其自身转储到 cookie 存储中。
每次用户访问您的网站时,您都可以进行一次握手,以确保 cookie 与数据库匹配(如有必要)。否则,您可能会拥有不同的数据,哪些数据仅在登录时更新,哪些数据不更新,并且如果没有握手,用户将必须继续登录以确保它们仍然有效,这首先就违背了拥有 cookie 的目的。
客户端 cookie 存储的缺点是安全问题。根据您使用 cookie 存储数据的方式,某人可能会劫持您网站上的某些人的 cookie 并假装他们是他们。这可以通过仔细设计来避免,但只要假设 cookie 存储中的任何内容对每个人来说都是公平的,因此请谨慎使用它,并且仅用于非秘密数据。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
715 次 |
| 最近记录: |