swoole websocket 使用 passport 无法获取当前用户问题

借助使用 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);
    }
}

不到位的地方大神们多多指教!

swoole websocket 使用passport 无法获取当前用户问题

本作品采用《CC 协议》,转载必须注明作者和本文链接
Mujin
Mumujin
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 7
SnailOwO

后台怎么验证token是否过期呢?大兄弟

4年前 评论
Mumujin

@SnailOwO

这个中间件会验证的。


SwooleTW\Http\Websocket\Middleware\Authenticate::class,
4年前 评论
SnailOwO

@Olivia-outshine 恩恩,我也找到了

4年前 评论

可以问问JWT怎么验吗??

2年前 评论
Mumujin (楼主) 2年前
hbj111 (作者) 2年前

jwt 可使用 url?token= you token 方式即可获取用户信息 但是实际应用测试了很多方法,好像也是无法直接获取,不知道如何鉴权。

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!