我的应用程序在前端使用React,在后端使用Laravel
5.4。我fetch()
用来从后端请求数据。问题是页面加载时会创建两个会话。TokenMismatchException
发出POST
请求时,CSRF中间件会引发A,因为发送的令牌与创建的第一个会话匹配,但它会与第二个会话进行检查。
我在设置令牌 app.blade.php
<meta name="_token" content="{{ csrf_token() }}">
并在获取配置中获取令牌
fetchConfig = {
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
},
credentials: 'same-origin'
}}
以下是解密的会话:
a:3:{s:6:"_token";s:40:"7obvOzPaqqJDtVdij8RaqrvmTFLjKA2qnvYMxry6";s:9:"_previous";a:1:{s:3:"url";s:24:"http://localhost/page";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}
a:3:{s:6:"_token";s:40:"5Aiws9Qy72YzlkfWX81zkhzrSeiMDYjFWiLeDAwN";s:9:"_previous";a:1:{s:3:"url";s:41:"http://localhost/api/page";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}
要求网址: http://localhost/page
API网址: http://localhost/api/page
当React应用发出初始GET
请求时,如何防止创建新会话?
- Laravel 为由应用程序管理的每个活动 用户会话 自动生成CSRF“令牌”
- 。此令牌用于验证经过身份验证的用户是实际向应用程序发出请求的用户。: https
- //laravel.com/docs/5.4/csrf
API是无状态的。session
API中没有类似的东西。因此,您不应在API中使用CSRF令牌。如果您检查Kernel.php
laravel。您将看到Tylor没有VerifyCsrf
在API组中添加中间件。建议CSRF
仅在具有会话的请求(即有状态请求)中使用。我建议您对API使用基于JWT的身份验证系统。有关JWT的更多信息,请点击此处。
您可以将此laravel软件包用于JWT:https :
//github.com/tymondesigns/jwt-auth
org.openqa.selenium.SessionNotCreatedException:无法创建新会话。(原始错误:命令失败:C:\Windows\system32\cmd.exe/s/C“C:\Program Files(x86)\Android\Android sdk\platform tools\adb.exe”-s 69c7aa170104安装“C:\Program Files(x8
这是因为我在一个搜索字段上有一个失败的Behat测试-这个字段是通过javascript添加的,所以我假设Selenium(与我的设置)有问题。 我发现,如果我访问http://localhost:4444/wd/hub并单击“create Session”,选择任何浏览器(android、iphone、firefox、chrome、internet explorer、opera),我将得到错误消
问题内容: 我正在维护Java Web应用程序。 通过登录代码,它可以通过HttpServletRequest的getSession()方法从HttpServletRequest中获取一个HttpSession。(它在会话中使用一些值进行认证) 但是,我担心会话固定攻击,因此在使用初始会话后,我想开始一个新会话或更改会话ID。这可能吗? 问题答案: Servlet 3.0 API不允许您更改现有会
本质上,我编码的是一个益智游戏。 我认为这是因为前面设置的阻止了值的工作。 我插入了一些值来检查方法是否正在运行,它运行了,但是当用户单击“开始游戏”时,图像仍然拒绝出现在按钮上。
有人能帮我吗?我是Android系统的新手,我正尝试在AVD中打开应用程序,安装了应用程序,但我得到错误“一个新的会话不能被创建。(原始错误:命令失败:)”,“杀死”:false,“代码”:1,“信号”:null,“origvalue”:“命令失败:”},“sessionid”:null} 谢谢你事先的帮助 尝试只提供Capabilities.SetCapability(“AppActivity”
我正试图使用Selenium Grid启动一款新的Chrome浏览器,但最终出现以下错误 无法创建新的远程会话。所需功能=能力[{浏览器名称=chrome,版本=55.0.2,平台=WINDOWS}],所需功能=能力[{}]构建信息:版本:“3.0.1”,修订版本:“1969d75”,时间:“2016-10-18 09:49:13 -0700”系统信息:主机:“PL9710388”,ip:“10.