Session 如何使用curl将cookie传递给Sinatra应用程序?

Session 如何使用curl将cookie传递给Sinatra应用程序?,session,cookies,curl,sinatra,rack,Session,Cookies,Curl,Sinatra,Rack,我正在使用本教程中标题为“稍大一点的示例”的示例中的代码来了解如何将cookie发送到Sinatra应用程序,但我无法了解如何正确设置值 curl -b "rack.session=BAh7BiIJdXNlciIMYnJhbmRvbg==" localhost:9393 当我在应用程序中将名称设置为“brandon”时,它会创建一个值为BAh7BiIJdXNlciIMYnJhbmRvbg%3D%3D%0A的cookie,该cookie是值BAh7BiIJdXNlciIMYnJhbmRvbg==

我正在使用本教程中标题为“稍大一点的示例”的示例中的代码来了解如何将cookie发送到Sinatra应用程序,但我无法了解如何正确设置值

curl -b "rack.session=BAh7BiIJdXNlciIMYnJhbmRvbg==" localhost:9393
当我在应用程序中将名称设置为“brandon”时,它会创建一个值为
BAh7BiIJdXNlciIMYnJhbmRvbg%3D%3D%0A的cookie,该cookie是值
BAh7BiIJdXNlciIMYnJhbmRvbg==

使用该值,我可以向应用程序正确发送cookie

curl -b "rack.session=BAh7BiIJdXNlciIMYnJhbmRvbg==" localhost:9393
我非常确定该值是会话的ruby哈希的base64编码,因为docs()说

会话是一个Ruby哈希,存储为base64编码的封送数据集,设置为:key(默认值:rack.session)

我认为这意味着我所要做的就是base64编码
{“user”=>“brandon”}
并在curl命令中使用它。不幸的是,这创建的值与
BAh7BiIJdXNlciIMYnJhbmRvbg==
不同。接下来,我尝试获取base64编码的值,并在各种base64解码器上在线解码,但这会导致出现奇怪的字符(一个方框符号和其他符号),因此我不知道如何重新创建该值以对其进行编码


所以我的问题是,你知道我需要什么字符/格式来获得正确的base64编码,和/或你知道使用curl传递值的另一种方法,以便它将注册为Sinatra应用程序的正确cookie吗?

如果你是说用户名和密码输入到登录页面的表单中,那么curl可以像这样“提交”该表单:

curl-d“username=miniape&password=SeCrEt”

如果要存储返回的cookie,请指定cookie文件:

curl-c cookies.txt-d“username=miniape&password=SeCrEt”

要在以后的请求中使用这些cookie,请执行以下操作:

curl-b cookies.txt-d“username=miniape&password=SeCrEt”

或者,如果您希望同时发送和接收cookie,请同时执行以下操作:

curl-b cookies.txt-c cookies.txt-d“username=miniape&password=SeCrEt”


在metafilter上找到此项

f您的意思是用户名和密码在登录页面的表单中输入,然后cURL可以“提交”该表单,如:

curl-d“username=miniape&password=SeCrEt”

如果要存储返回的cookie,请指定cookie文件:

curl-c cookies.txt-d“username=miniape&password=SeCrEt”

要在以后的请求中使用这些cookie,请执行以下操作:

curl-b cookies.txt-d“username=miniape&password=SeCrEt”

或者,如果您希望同时发送和接收cookie,请同时执行以下操作:

curl-b cookies.txt-c cookies.txt-d“username=miniape&password=SeCrEt”


在metafilter上找到这个

我在metafilter上也看到了,但那是用于发布凭证的。我正试图将cookie和GET请求一起传递给应用程序中的根处理程序。查看我在问题顶部链接的文章中的代码,我在metafilter中也看到了这一点,但这是用于发布凭证的。我正试图将cookie和GET请求一起传递给应用程序中的根处理程序。查看我在问题顶部链接到的文章中的代码,你曾经解决过这个问题吗?我有一个相关但相反的问题,我正在尝试解码一个现有的Rack::Session::Cookie-你有没有解决过这个问题?我有一个相关但相反的问题,我试图解码现有的Rack::Session::Cookie-请参阅