【问题标题】:Tornado Cookies龙卷风饼干
【发布时间】:2011-11-01 23:59:29
【问题描述】:

我使用 Apache 和 PHP 作为我的前端服务器和 Tornado 作为我的 后端来处理我的请求。当允许用户登录时我想要 为用户名和密码创建 cookie。如果我这样做 如下:

self.set_cookie('emailaddress', email_address, domain='mydomain.com', expires=None, path='/', expires_days=expire_d)
self.set_cookie('password', newpass, domain='mydomain.com', expires=None, path='/', expires_days=expire_d)

没有创建任何东西。但如果我这样做:

self.set_cookie('emailaddress', email_address) 
self.set_cookie('password', newpass) 

它有效。但即使我可以看到的饼干 Firefox 和 Firebug,但我前端的 PHP 无法识别它们。 我也知道它不是来自跨域,因为我有我的 Tornado 服务器 通过 Apache 代理。

【问题讨论】:

  • 好的,看来问题在于定义域。不知道为什么,但我想让它成为我域的全局 cookie,以便子域也可以使用它。

标签: php python apache cookies tornado


【解决方案1】:

是的,如果您使用子域在 Tornado 和 PHP 之间进行路由,问题似乎与子域有关,如果没有这方面的详细信息,很难说出如何解决它。

但总的来说,将 Tornado 映射到主域上的某个相对 url 并且不要与子域混淆可能是个好主意?

P.S.:以纯文本形式在 cookie 中存储登录名/密码对并不安全,我建议使用通过 PHP 和 Tornado 之间的通用数据库映射到用户的唯一会话 ID。

【讨论】:

  • 是的,我最终弄明白了。我想说 Tornado 仍然有一些错误,因为在完全关闭 Tornado 服务器并重新启动它而不是重新启动它之后,它解决了 Cookie 问题。最后我更改了登录凭据,存储了用户 ID,创建了会话令牌 ID,并将部分 IP 地址存储在 cookie 中,并将它们与数据库进行比较。似乎工作得很好。
猜你喜欢
  • 2015-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多