Lumen 中的 CSRF 保护,辅助功能异常

问题描述 投票:0回答:2

根据 Laravel Lumen 的文档,可以利用 CSRF 辅助函数来生成 CSRF 令牌。但是,当我继续使用

csrf_field
函数或
csrf_token
函数时,我会收到一条错误消息:

Call to undefined function csrf_field()

Call to undefined function csrf_token()

分别。

研究

似乎有些人说 CSRF 保护不是 Lumen 的一部分,但由于文档中列出了它,我认为它是。

我很可能忽略了一些相当简单的事情。我是否需要以某种方式告诉 Lumen 我想专门使用这个助手?无论如何,任何正确方向的指示将不胜感激!

laravel lumen
2个回答
4
投票

Lumen 没有这些助手。您可以通过查看源代码自行检查。因此,您需要手动插入令牌:

<input type="hidden" name="_token" value="{{ app('session')->token() }}">

0
投票

正如 Alexey Mezenin 所说,在 Lumen 中你必须手动插入令牌。

但是据我们所知,Lumen 不支持会话,即使您以某种方式激活它,它仍然不是注册的服务提供商,除非您采取艰难的方式,我不建议您这样做,因为 Lumen 的创建很简单,所以保持简单。

使用会话中间件,您可以使用

csrf token
辅助函数访问
request()
,而不是使用此代码(来自 Alexey Mezenin 的 Asnwer):

<input type="hidden" name="_token" value="{{ app('session')->token() }}">

你只需说:

<input type="hidden" name="_token" value="{{ request()->session()->token() }}">

就是这样!

© www.soinside.com 2019 - 2024. All rights reserved.