如何将 Postman 用于 Laravel $_POST 请求
How to use Postman for Laravel $_POST request
如何尝试使用 Postman 向 Laravel 应用程序发送 post 请求?
通常 Laravel 有一个 csrf_token
我们必须通过 POST/PUT 请求。我如何在 Postman 中获取和发送这个值?甚至可以不关闭 CSRF 保护吗?
编辑:
啊等等,我看错了问题。你想在不关闭 CSRF 保护的情况下这样做吗?就像 Bharat Geleda 所说:您可以制作一条 returns 只有令牌的路线,然后手动将其复制到邮递员的 _token
字段中。
但我建议将您的 api 呼叫从 CSRF 保护中排除,如下所示,然后添加某种 API 身份验证。
你laravel是哪个版本运行?
Laravel 5.2 及以上:
从 5.2 开始,只有带有 web
中间件的路由才需要 CSRF 令牌。因此,使用 web
中间件将您的 api 路由放在组之外。
有关详细信息,请参阅 documentation 中的“默认路由文件”标题。
Laravel 5.1 和 5.2:
您可以像这样在 VerifyCsrfToken
中间件中排除不应具有 CSRF 保护的路由:
class VerifyCsrfToken extends BaseVerifier
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
'api/*',
];
}
有关详细信息,请参阅“从 CSRF 保护中排除 URI”标题 documentation。
在laravel中,5.3。转到 app/Http/Kernel.php
找到 middlewareGroups
然后评论 VerifyCsrfToken。因为它在服务您的请求之前执行所有中间件。
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
***// \App\Http\Middleware\VerifyCsrfToken::class,***
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:60,1',
'bindings',
],
];
1.You 可以在下面的函数的帮助下使用您的控制器创建一个新路由来显示 csrf 令牌。
(在路线上使用 Get 请求)
public function showToken {
echo csrf_token();
}
2.Select postman 上的正文选项卡,然后选择 x-www-form-urlencoded。
3.Copy 令牌并粘贴到 postman 中作为名为 _token 的键的值。
4.Execute 您对 URL/Endpoint
的 post 请求
如果您将 session 存储在 Cookie 中,您可以从开发人员工具中的身份验证请求中获取 Cookie。
将该 Cookie 复制并粘贴到您的 POSTMAN 或 Paw 请求的 Header 中。
此方法允许您将 API 测试限制为当前 session。
在 headers 中,在发出请求之前添加 cookie,XSRF-TOKEN cookie 和应用程序 cookie。即 yourappname_session
如何尝试使用 Postman 向 Laravel 应用程序发送 post 请求?
通常 Laravel 有一个 csrf_token
我们必须通过 POST/PUT 请求。我如何在 Postman 中获取和发送这个值?甚至可以不关闭 CSRF 保护吗?
编辑:
啊等等,我看错了问题。你想在不关闭 CSRF 保护的情况下这样做吗?就像 Bharat Geleda 所说:您可以制作一条 returns 只有令牌的路线,然后手动将其复制到邮递员的 _token
字段中。
但我建议将您的 api 呼叫从 CSRF 保护中排除,如下所示,然后添加某种 API 身份验证。
你laravel是哪个版本运行?
Laravel 5.2 及以上:
从 5.2 开始,只有带有 web
中间件的路由才需要 CSRF 令牌。因此,使用 web
中间件将您的 api 路由放在组之外。
有关详细信息,请参阅 documentation 中的“默认路由文件”标题。
Laravel 5.1 和 5.2:
您可以像这样在 VerifyCsrfToken
中间件中排除不应具有 CSRF 保护的路由:
class VerifyCsrfToken extends BaseVerifier
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
'api/*',
];
}
有关详细信息,请参阅“从 CSRF 保护中排除 URI”标题 documentation。
在laravel中,5.3。转到 app/Http/Kernel.php
找到 middlewareGroups
然后评论 VerifyCsrfToken。因为它在服务您的请求之前执行所有中间件。
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
***// \App\Http\Middleware\VerifyCsrfToken::class,***
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:60,1',
'bindings',
],
];
1.You 可以在下面的函数的帮助下使用您的控制器创建一个新路由来显示 csrf 令牌。 (在路线上使用 Get 请求)
public function showToken {
echo csrf_token();
}
2.Select postman 上的正文选项卡,然后选择 x-www-form-urlencoded。
3.Copy 令牌并粘贴到 postman 中作为名为 _token 的键的值。
4.Execute 您对 URL/Endpoint
如果您将 session 存储在 Cookie 中,您可以从开发人员工具中的身份验证请求中获取 Cookie。
将该 Cookie 复制并粘贴到您的 POSTMAN 或 Paw 请求的 Header 中。
此方法允许您将 API 测试限制为当前 session。
在 headers 中,在发出请求之前添加 cookie,XSRF-TOKEN cookie 和应用程序 cookie。即 yourappname_session