请不要误解我的误解。 会议对我来说很新,我有一些问题。
好的,我读了很多关于会话的信息,尤其是rails会话。但这并不能让我想象会议。
我理解正确,用户向服务器发送请求(获取) - >服务器创建一个新会话(并将该文件存储在具有会话ID的硬盘驱动器中),会话ID - >是一个随机生成的数字?因此,服务器在此服务器向客户端发回答案并在cookie中设置session_id后,创建一个新会话(并在驱动器上存储会话)?
好的,我调试一些参数并看到一些结果:
{:_csrf_token=>"jeONIfNxFmnpDn/xt6I0icNK1m3EB3CzT9KMntNk7KU=", :session_id=>"06c5628155efaa6446582c491499af6d", "flash"=>{}}
{"remember_user_token"=>"1::3GFRFyXb83lffzwPDPQd", "_blog_session"=>"BAh7CDoQX2NzcmZfdG9rZW4iMWplT05JZk54Rm1ucERuL3h0NkkwaWNOSzFtM0VCM0N6VDlLTW50Tms3S1U9Og9zZXNzaW9uX2lkIiUwNmM1NjI4MTU1ZWZhYTY0NDY1ODJjNDkxNDk5YWY2ZCIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7AA==--348c88b594e98f4bf6389d94383134fbe9b03095"}
好的,我知道,_csrf_token有助于防止csrf。 session_id - >是存储在硬盘驱动器上的会话的ID(默认情况下)
但是什么是cookies中的_blog_session? 另外,remeber_user_token包含我的id(1 :: *)以及第二部分,它是什么?
对不起这个愚蠢的问题,我知道我可以轻松使用任何好的auth-plugins(authlogic / clearance / devise),但我想完全理解会话。
谢谢。
(对不起我的英语,这不是我的母语)
答案 0 :(得分:1)
remember_user_token
可能由您的身份验证插件设置,它是加密字符串,存储在users表中,用于验证他。插件之间的细节可能有所不同。
第二部分:您可能正在使用基于cookie的会话存储(默认情况下),
因此,_blog_session
存储您的加密会话数据。
有关基于Cookie的会话here和here的更多信息。
名称“_blog_session”在config / initializers / session_store.rb中设置
看起来像:
# Your secret key for verifying cookie session data integrity.
# If you change this key, all old sessions will become invalid!
# Make sure the secret is at least 30 characters and all random,
# no regular words or you'll be exposed to dictionary attacks.
ActionController::Base.session = {
:key => '_blogs_session',
:secret => '07fb6f0d41af4ae06aebb1696fcbb5a5398d4a08570744a4cd53ff237020c43a2022b4041d617d95bcf3f5c4601c7e6c1646eecfc157cc200e7dfedd7d7c6813'
}