如何将 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