首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Play Framework身份验证:生产中未添加请求头

Play Framework身份验证:生产中未添加请求头
EN

Stack Overflow用户
提问于 2018-02-05 06:20:47
回答 2查看 344关注 0票数 0

我已经实现了一个授权的操作,就像this question中解释的那样,以及@vdebergue给出的答案。

这工作得很好,前端应用程序发出的请求自动添加了一个X-XSRF-TOKEN请求头,其中包含从登录响应中获得的令牌。

但是,在部署前端和后端后,从浏览器发出的请求不再添加X-XSRF-TOKEN请求标头,从而导致来自服务器的未经授权的响应(理所当然)。

我不能理解的是,在开发和部署之间发生了什么变化?

我在cors.allowedHttpHeaders中指定了请求头:

代码语言:javascript
复制
play.filters.cors.allowedHttpHeaders = ["Accept", "Origin", "Content-Type", "X-XSRF-TOKEN"]

我怀疑我必须从React手动添加这个头(事实上,这个问题可能与前端无关)。

谢谢!

编辑1:

XHR请求列表:

登录POST请求的详细信息,可以看到X-XSRF cookie和正在传递的令牌:

未将X-XSRF设置为请求标头的未授权GET的详细信息:

与之前的截图相同,但在localhost上运行,通过添加标题获得授权:

EN

回答 2

Stack Overflow用户

发布于 2018-02-05 13:34:10

假设您正确实现了cookie,并且在部署过程中没有附加cookie,则该问题可能与cookie的有关。我这样做的方式是定义一个环境变量,并使用它来保存域值;这样就不会在开发和测试期间破坏实现。

您可以查看Playframework API documentation,了解有关如何使用cookie的更多信息。

票数 0
EN

Stack Overflow用户

发布于 2018-02-14 14:04:34

解决了一个非常规的问题:前端是用react制作的,它提供了一种构建static生产版本的方法。

我只是简单地将这些静态文件与play框架的index.scala.html集成在一起,而不是试图在不同的端口上将其作为单独的应用程序运行。

它可以工作,但我不会将其标记为最佳答案,因为我不知道连接到相同play框架后端的移动应用程序在授权和cookie方面是否会很好地发挥作用。移动应用程序不是浏览器(并且可能不遵守它们的限制),Postman对cookie没有任何问题。

接受检查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48613590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档