【问题标题】:Sinatra App clears session/cookieSinatra 应用程序清除会话/cookie
【发布时间】:2014-08-21 03:10:18
【问题描述】:

我一直在开发一个使用 rackup 作为服务器的 Sinatra 应用程序。现在是时候使用 Nginx 和 Unicorn 进行部署了。

我遇到了会话设置不正确的问题。例如,我有 Rack::Csrf,它提供了一个无效的令牌。此外,尝试为登录设置基本会话也不起作用。

以下是相关行。 我的 app.rb

use Rack::Session::Cookie, :path => '/'

Nginx 配置

upstream subdomain.domain.com {
server unix:/tmp/unicorn.app.sock
    fail_timeout=0;
}


server {

server_name subdomain.domain.com;

root /home/user/app/public;
# port to listen for requests on
listen 1.1.2.3.4;

client_max_body_size 4G;

keepalive_timeout 5;

location / {
  try_files $uri @app;
}

location @app {
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $http_host;
  proxy_redirect off;

  proxy_pass http://subdomain.domain.com;
}
}

感谢任何帮助

【问题讨论】:

    标签: session cookies nginx sinatra unicorn


    【解决方案1】:

    我也有同样的问题,因为我放了

    use Rack::Session::Cookie, key: 'rack.session',
        domain: 'mydomain.com',
        path: '/',
        expire_after: 2592000,
        secret: ENV['SESSION_SECRET']
    

    在 config.ru 文件中。当我将此移至 Sinatra 配置块时,问题就消失了。

    【讨论】:

      【解决方案2】:

      看来我需要设置一个域

      使用 Rack::Session::Cookie, :domain=>'subdomain.domain.com', :path => '/'

      不知道为什么在使用 rackup 的开发中没有必要

      【讨论】:

        猜你喜欢
        • 2015-07-31
        • 2013-09-21
        • 2021-07-26
        • 2021-07-29
        • 2012-02-26
        • 2014-01-03
        • 2011-05-23
        • 1970-01-01
        • 2021-07-07
        相关资源
        最近更新 更多