如何使工作laravel, vue session csrf
How to make work laravel, vue session csrf
Laravel 表单需要 csrf 才能工作
如果我使用 vue+laravel 制作 spa,单页应用程序,这样我的 laravel 模板只包含空的 html 和正文,
并且用户在使用应用程序的许多小时内实际上根本没有刷新页面,
(页面不刷新,因为一切都在ajax)
如何让登录会话保持活动状态?
如何让 csrf 工作?或者我可以禁用它吗?
如果不先登录,该应用程序将不执行任何操作。
如果您将 axios 与 Vue2 一起用于您的 ajax 请求,csrf 已经在 bootstrap.js 中可用,您可以在那里看到这一行
let token = document.head.querySelector('meta[name="csrf-token"]');
如果你只想坚持你的 ajax,那么你应该把这行放在你挂载的钩子里。
mounted() {
this.csrfToken = document.querySelector('meta[name="csrf-token"]').content
},
这个 csrfToken 应该像这样附加到你的表单中
<form :method="method.toUpperCase() == 'GET' ? 'GET' : 'POST'">
<input-hidden :value="csrfToken" name="_token"/>
<input-hidden
v-if="['GET', 'POST'].indexOf(method.toUpperCase()) === -1"
:value="method"
name="_method"
/>
<!--
This hidden submit button accomplishes 2 things:
1: Allows the user to hit "enter" while an input field is focused to submit the form.
2: Allows a mobile user to hit "Go" in the on-screen keyboard to submit the form.
-->
<input type="submit" class="absolute invisible z-0">
<slot/>
</form>
这是一个很好的例子。检查一下 csrf token
注意:请不要禁用 csrf 令牌,因为它是保护您对服务器的请求的唯一方式。
Laravel 表单需要 csrf 才能工作
如果我使用 vue+laravel 制作 spa,单页应用程序,这样我的 laravel 模板只包含空的 html 和正文, 并且用户在使用应用程序的许多小时内实际上根本没有刷新页面, (页面不刷新,因为一切都在ajax)
如何让登录会话保持活动状态? 如何让 csrf 工作?或者我可以禁用它吗? 如果不先登录,该应用程序将不执行任何操作。
如果您将 axios 与 Vue2 一起用于您的 ajax 请求,csrf 已经在 bootstrap.js 中可用,您可以在那里看到这一行
let token = document.head.querySelector('meta[name="csrf-token"]');
如果你只想坚持你的 ajax,那么你应该把这行放在你挂载的钩子里。
mounted() {
this.csrfToken = document.querySelector('meta[name="csrf-token"]').content
},
这个 csrfToken 应该像这样附加到你的表单中
<form :method="method.toUpperCase() == 'GET' ? 'GET' : 'POST'">
<input-hidden :value="csrfToken" name="_token"/>
<input-hidden
v-if="['GET', 'POST'].indexOf(method.toUpperCase()) === -1"
:value="method"
name="_method"
/>
<!--
This hidden submit button accomplishes 2 things:
1: Allows the user to hit "enter" while an input field is focused to submit the form.
2: Allows a mobile user to hit "Go" in the on-screen keyboard to submit the form.
-->
<input type="submit" class="absolute invisible z-0">
<slot/>
</form>
这是一个很好的例子。检查一下 csrf token
注意:请不要禁用 csrf 令牌,因为它是保护您对服务器的请求的唯一方式。