gpt4 book ai didi

ruby - 如何设置 session [:expires] in rack session (Sinatra)

转载 作者:太空宇宙 更新时间:2023-11-03 16:31:03 24 4
gpt4 key购买 nike

您可以在设置 session 引擎时为 Sinatra 应用程序设置 session 过期时间:

  use Rack::Session::Cookie, :expire_after => 60*60*3, :secret => 'xxxx'

但我想为某些用户启用更长的 session 。比如说两周。

    session[:expires] = ?? #how and where do I put this.?

我是否需要在每次调用时设置(之前?)还是一次就足够了? session[:expires] 设置正确吗?

最佳答案

首先确保您没有使用 use Rack::Session::Cookie 命令设置 expire_after 值,然后将 use Rack::Session::Cookie 在您的 configure block 中。接下来创建一个“过期时间”变量(让我们在本示例中使用 expiry_time)或在 config 中进行设置。现在对于每个用户,当他们登录时,检索他们的 expiry_time 设置并发出以下命令:

env['rack.session.options'].merge! expire_after: expiry_time

这应该可以满足您的要求。

如果这对您不起作用,请尝试将 env...merge! 命令放在 before block 中。

关于ruby - 如何设置 session [:expires] in rack session (Sinatra),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15887763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com