2015-06-22 29 views
1

我正在使用play-2.2.3来开发API。这些API可以通过PHP/JQuery前端访问。简单的例子是一个resetPassword API。从PHP中,当我调用重置密码API时,它应该受CSRF令牌的保护,以便有人不能简单地调用该API并重置其他人的密码。 使用Scala呈现表单(由Play-2.2.3提供)的缺点是,有没有办法手动将单次使用的服务器端令牌显示为重置密码表单中的隐藏表单字段,并在发布请求中得到验证由服务器提交表单?如何使用PHP前端提供的play framework(play-2.2.3)提供的CSRF令牌?

+0

设置应用程序的哪个部分创建用户会话:PHP还是Play?您的Play API如何受到直接访问保护?是否为您的PHP和Play应用程序设置了跨源资源共享(CORS)配置? –

回答

1

想通了如何做到这一点。

  1. 在戏剧方面,不要把任何CSRF设置在application.conf
  2. 使用@AddCSRFToken注解上,将设置一个名为PLAY_SESSION=.....-csrfToken=........
  3. 在这种需要是API调用的cookie的方法验证完全通过PLAY_SESSION cookie,并在queryString中传递csrfToken=.....
相关问题