Sinatra フレームワークの学習とログイン システムの開発を行っています。Cookie を使用する 2 つの方法に出会いました。
シンプルな Sinatra 組み込みの方法:
enable :sessions
set :session_secret, 'random-key'
このアプローチでは、ログイン中に次の Cookie コンテンツが生成されます (session.inspect
出力を取得するために使用されます)。
{"session_id"=>"6be0b9a31831604ba51114d265ba952482e0b2da6ced6c54e15ebe7f212858ca",
"tracking"=>{"HTTP_USER_AGENT"=>"b8c1e8f89eeaea0b825bed0d811f0c7678e98c74",
"HTTP_ACCEPT_ENCODING"=>"a0bfc876d68fe7aea700da5ea8925abac6f2f794",
"HTTP_ACCEPT_LANGUAGE"=>"dd065ed263c67d799f943ab6c39b55c5e008cbb5"},
"csrf"=>"b480324f510e4f391d15cee8236a8fb74a5aaa5ce2f9ad38e4dbb025a823b16e",
"name"=>"john"}
別のアプローチは、暗号化された Cookie を使用することです。
require 'sinatra'
require 'encrypted_cookie'
use Rack::Session::EncryptedCookie, :secret => "random-key"
ただし、このアプローチでは、ログイン中に次の Cookie コンテンツが生成されます (session.inspect
ここでも使用されます)。
{:name=>"john"}
そのようなすべての情報を含む大きな Cookie を作成する理由enable :sessions
と、それが必要な理由 (特に HTTP_... の部分)Rack::Session::EncryptedCookie
は、それを生成しないためです。
enable :sessions
csrfトークンとセッションIDがあるため、使用することをお勧めしますか? Rack::Session::EncryptedCookie
それとも暗号化されているのでそれで十分だと思いますか?
次のバージョンの gem がインストールされています。
encrypted_cookie (0.0.4)
rack (1.5.2)
rack_csrf (2.4.0)
sinatra (1.4.3)
thin (1.5.1)
さらに情報が必要な場合は教えてください...