このチュートリアルhttp://rubylearning.com/blog/2009/09/30/cookie-based-sessions-in-sinatra/の「A Slightly Bigger Example」というタイトルの例のコードを使用して、 Sinatra アプリケーションに Cookie を送信しますが、値を正しく設定する方法がわかりません
アプリケーションで名前を「brandon」に設定すると、値のBAh7BiIJdXNlciIMYnJhbmRvbg%3D%3D%0A
URL エンコード ( http://ostermiller.org/calc/encode.html ) である値を持つ Cookie が作成されます。BAh7BiIJdXNlciIMYnJhbmRvbg==
その値を使用して、Cookie をアプリに正しく送信できます
curl -b "rack.session=BAh7BiIJdXNlciIMYnJhbmRvbg==" localhost:9393
ドキュメント( http://rack.rubyforge.org/doc/classes/Rack/Session/Cookie.html)が言うので、値はセッションのルビーハッシュのbase64エンコーディングであると確信しています
セッションは、:key (デフォルト: rack.session) に設定された base64 でエンコードされたマーシャリングされたデータとして格納された Ruby ハッシュです。
つまり、base64 でエンコード{"user"=>"brandon"}
して curl コマンドで使用するだけで済みます。残念ながら、それは とは異なる価値を生み出しますBAh7BiIJdXNlciIMYnJhbmRvbg==
。次に、base64 でエンコードされた値を取得し、さまざまな base64 デコーダーでオンラインでデコードしようとしましたが、奇妙な文字 (ボックス記号など) になるため、値を再作成してエンコードする方法さえわかりません。
だから私の質問は、適切なbase64エンコーディングを取得するために必要な文字/形式を知っていますか、および/またはcurlを使用して値を渡し、Sinatraアプリの適切なCookieとして登録する別の方法を知っていますか?