藉助使用
https://github.com/swooletw/laravel-swoole
啟用sebsocket。
為什麼使用jwt 可以? 而passport 不行?
很簡答,jwt可使用url?token= you token
方式即可獲取使用者資訊,但passport 不行
ps: 目前我也沒找到如何有效的設定socket.io
header
SO, 機智的我想到在獲取使用者資訊中介軟體之前使用url?token= you token
設定request
header,輕鬆解決這個問題。
laravel-swoole
文件中在配置檔案設定中介軟體( docs -> )
'middleware' => [
// 這裡加入你的中介軟體
App\Http\Middleware\SetBearerToRequestHeader::class,
SwooleTW\Http\Websocket\Middleware\DecryptCookies::class,
SwooleTW\Http\Websocket\Middleware\StartSession::class,
SwooleTW\Http\Websocket\Middleware\Authenticate::class,
],
class SetBearerToRequestHeader
{
public function handle($request, Closure $next)
{
$request->headers->set('Authorization', 'Bearer ' . $request->get('token'));
return $next($request);
}
}
不到位的地方大神們多多指教!