【问题标题】:How to read cookies not set by Flask如何读取 Flask 未设置的 cookie
【发布时间】:2015-12-08 09:54:54
【问题描述】:

我有一个在 wordpress 网站的 iframe 中运行的 Flask 网站。

两个网站都在同一个域上。也就是说,wordpress 站点位于 www.example.com 上,而 Flask 站点位于 api.example.com 上。

我需要在 iframe 中显示一些用户特定的内容。那么如何读取 Flask 中 wordpress 设置的 cookie?或者检查它是否设置? 基本上,我想知道用户是否登录(存在会话 cookie)及其用户名。

如果我能以某种方式将 Flask-Login 插件与实际的 Wordpress 登录名集成在一起,那就最好不过了,但我不认为这是可能的。

【问题讨论】:

  • 您无法通过 cookie 检查登录状态。登录状态存储在服务器端的会话变量中。 WP Cookie 只是将用户与会话实例联系起来的会话 ID。
  • 但是您可以创建一个休息服务,如果 ID 有效且用户名返回,则该服务会返回

标签: python wordpress cookies flask session-cookies


【解决方案1】:

创建 cookie 时会设置其域。您需要确保域设置为使两个站点domain match cookie 域。例如,example.com 将允许两个站点查看 cookie,或者以另一种方式将它们与对两个服务器的请求一起设置。

wordpress 登录可以与 Flask 集成。您需要提取会话 id/cookie 内容,然后向 wordpress 站点发出请求。

烧瓶代码:

request.cookies.get('username')  # get single cookie
request.cookies  # get all as dict

Cookie attribute

此请求检查会话是否有效并返回用户凭据。 如果成功——意味着用户可以自动登录——然后你调用cookies

注意:您必须手动同步会话。在 api 端创建会话时,它将继续存在,直到过期或您手动调用注销。此外,如果您退出 wordpress 端,flask 会话将继续存在

更多信息cookies

【讨论】:

  • 这:“wordpress 登录可以与 Flask 集成。您需要提取会话 id/cookie 内容,然后向 wordpress 站点发出请求。”这就是我想知道该怎么做。如何提取会话 ID 和 cookie 内容?
猜你喜欢
  • 2018-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-19
  • 2018-03-21
  • 1970-01-01
  • 2017-12-04
相关资源
最近更新 更多