sinatra session
https://sinatrarb.com/intro.html
session用于在请求期间保持状态,如果激活 ,每个用户都会有一个session hash
<span class="n">enable</span> <span class="ss">:sessions</span>
<span class="n">get</span> <span class="s1">'/'</span> <span class="k">do</span>
<span class="s2">"value = "</span> <span class="o"><<</span> <span class="n">session</span><span class="p">[</span><span class="ss">:value</span><span class="p">].</span><span class="nf">inspect</span>
<span class="k">end</span>
<span class="n">get</span> <span class="s1">'/:value'</span> <span class="k">do</span>
<span class="n">session</span><span class="p">[</span><span class="s1">'value'</span><span class="p">]</span> <span class="o">=</span> <span class="n">params</span><span class="p">[</span><span class="s1">'value'</span><span class="p">]</span>
<span class="k">end</span>
创建session秘钥
ruby -e "require 'securerandom'; puts SecureRandom.hex(64)"
使用 sysrandom gem 更喜欢使用系统 RNG 工具来生成随机值,而不是 MRI Ruby 当前默认使用的用户空间 OpenSSL:
$ gem install sysrandom
Building native extensions. This could take a while...
Successfully installed sysrandom-1.x
1 gem installed
$ ruby -e "require 'sysrandom/securerandom'; puts SecureRandom.hex(64)"
99ae8af...snip...ec0f262ac
</div>