use Rack::Session::Cookie,:key => COOKIE_KEY,:path => '/',:expire_after => 2592000,#30 days :secret => COOKIE_SECRET
ws.onopen { |handshake| cookie,bakesale = handshake.headers['Cookie'].split('=') rack_cookie = Rack::Session::Cookie.new(MyApp,{ :key => COOKIE_KEY,#30 days :secret => COOKIE_SECRET }) decoded = rack_cookie.coder.decode(bakesale) puts "decoded: #{decoded}" }
cookie的值与我的COOKIE_KEY匹配就好了,但是解码的值是nil
我该如何解码传入的cookie数据?
– 一段时间之后 –
我把上面的内容稍微改了一下
ws.onopen { |handshake| cookie,#30 days :secret => COOKIE_SECRET,:coder => Rack::Session::Cookie::Base64.new }) puts rack_cookie.coder.decode(bakesale) }
和那些产出
?Q [????? OV ??????toZ 4-1 294cb6e2b95e9 ## V3 ???#C&安培;?F3#SC CSC#的CS c3sSCCs CCM;??FI“__ FLASH__ ; F {I“用户; FU:Moped :: BSO?㣤?&?V7D?B!
看起来需要编组.
但Marshal.load(rack_cookie.coder.decode(bakesale))抛出一个异常,说符号的转储格式错误(0x10)
– 甚至更久的时间 –
我也尝试了rack_cookie.coder.decode(bakesale.split(‘ – ‘).first)
结果导致了
?? H?d ???? =?d:ETI“E7ce599b294cb6e2b95e9?## v3 ???#c& F3#SC?CSC#CSs?c3sSCCs?cCm; FI”__ FLASH __; F {I“user; FU:助力车:: BSO㣤和放大器;????V7D乙!
正如您所看到的,存在一些细微差别,但无论哪种方式,我都需要以某种方式将其转换为有效的哈希值.
Marshal.load(rack_cookie.coder.decode(bakesale.split(‘ – ‘).first))仍会导致符号(0x10)转储格式错误.
所以我觉得我离我更近了,但还没有雪茄.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。