Laravel 5.3-如何在没有CSRF的情况下向"API"添加会话? [英] Laravel 5.3 - How to add Sessions to `API` without CSRF?

查看:95
本文介绍了Laravel 5.3-如何在没有CSRF的情况下向"API"添加会话?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试构建api,由于某种原因,我需要进行会话.但是,如果包含web中间件,则会出现CSRF错误,如果不包含,我将无法启动session.

Im trying to build an api, and for some reason I need sessions. But if I include web middleware I get CSRF errors, and if I dont I cant have session started.

该如何解决?

推荐答案

转到app/Http/Kernel.php,然后将自己的名称(如会话")添加到$ middlewareGroups中.它应该包含\ Illuminate \ Session \ Middleware \ StartSession :: class

go to app/Http/Kernel.php and add your own name like 'sessions' to the $middlewareGroups. It should contain \Illuminate\Session\Middleware\StartSession::class,

为您想要的那些路线分配会话".

Assign 'sessions' to those routes you want.

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,
        ],

        'api' => [
            'throttle:60,1',
        ],

        'sessions' => [
            \Illuminate\Session\Middleware\StartSession::class,
        ]
    ];

routes/api.php

routes/api.php

Route::group(['middleware' => ['sessions']], function () {
    Route::resource(...);
});

这篇关于Laravel 5.3-如何在没有CSRF的情况下向"API"添加会话?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆