播放框架:如果禁用 cookie,则查询字符串基于会话

Play framework: Query string bases session if cookie are disabled

背景:为什么我需要这个: 我的应用程序可以嵌入到 iframe 中。默认情况下,Mac 上的 safari 浏览器具有禁用第三方 cookie 的设置,因此有效地为我的应用程序禁用了 cookie。我不能要求每个人都允许第三方 cookie。

即使 cookie 被阻止,我也需要一些方法来验证请求。 Jetty 和 tomcat 提供了基于查询字符串的会话,但是在我开始玩框架之后我找不到任何关于这个的信息。请让我知道是否有简单的方法让我无法通过手动解析查询字符串自行管理会话。

只好自己实现了

Play 框架只提供开箱即用的无状态 sessions,它们存储在客户端的 cookie 中。

只需为每个用户生成一个令牌并将此令牌作为 header 值或作为每个请求的查询字符串参数发送,并在服务器端解析它以访问 session 变量。

  • 您还可以使用一些 key/value 存储或缓存,例如 memcached 或 redis 来保存 session 数据。