Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Livewire会话在Laravel身份验证中间件中返回NULL_Laravel_Session_Jwt - Fatal编程技术网

Livewire会话在Laravel身份验证中间件中返回NULL

Livewire会话在Laravel身份验证中间件中返回NULL,laravel,session,jwt,Laravel,Session,Jwt,我有一个livewire组件,需要使用JWT发送请求 由于livewireGET请求默认情况下不发送令牌,因此我决定修改Laravel的身份验证中间件,以便通过Laravel Auth中间件中的承载器发送我在livewire组件会话中放置的令牌 我在livewire组件中添加到会话的变量在尝试在身份验证中间件中检索时返回NULL 1.Livewire组件 <?php namespace App\Http\Livewire; class HelloWorld extends Compone

我有一个livewire组件,需要使用JWT发送请求

由于livewire
GET
请求默认情况下不发送令牌,因此我决定修改Laravel的身份验证中间件,以便通过Laravel Auth中间件中的承载器发送我在livewire组件会话中放置的令牌

我在livewire组件中添加到会话的变量在尝试在身份验证中间件中检索时返回NULL

1.Livewire组件

<?php

namespace App\Http\Livewire;
class HelloWorld extends Component
{
    public function mount(TransactionCheckoutRequest $request)
    {
        session(['x__livewire__token' => 'put token in session' ]);
    }
}

你能不能用你的代码代替截图?Stackoverflow阻止我添加图像。这就是为什么我只添加了图片的链接。我的意思是以文本格式包含源代码,而不是图片或整个图片的链接。完成了。我刚刚包括了源代码
<?php

namespace App\Http\Middleware;
use Closure;
use Illuminate\Auth\Middleware\Authenticate as Middleware;
use Illuminate\Support\Facades\Cookie;

class Authenticate extends Middleware
{
    public function handle($request, Closure $next, ...$guards)
    {
        # Check if request is made using LIVEWIRE
        if ( request()->hasHeader('x-livewire') ) {

            /**
             * get token from session
             *
             * 
             * But, this $token return NULL
             * instead token value.
             */
            $token = session()->get('x__livewire__token');

            $request->headers->set('Accept', 'application/json');
            $request->headers->set('Content-Type', 'application/json');

            // # Send token to request header
            $request->headers->set('Authorization', 'Bearer ' . $token);
        }

        # After that, authenticate livewire request
        $this->authenticate($request, $guards);

        return $next($request);
    }


    /**
     * Get the path the user should be redirected to when they are not authenticated.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return string|null
     */
    protected function redirectTo($request)
    {
        if ( !$request->expectsJson() ) {
            return route('user.login');
        }
    }
}
<?php

Route::group(['prefix' => 'v1'], function() {
        
    Route::group(['middleware' => ['auth:api', 'jwt.verifyer', 'hostname.access.verifyer']], function() {
        
        # Here is LIVEWIRE component
        Route::get('/processing', HelloWorld::class)->name('transaction.checkout');
    });

});