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 协议》,转载必须注明作者和本文链接
Ryan
Mumujin
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 7
SnailOwO

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

5年前 评论
Mumujin

@SnailOwO

这个中间件会验证的。


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

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

5年前 评论

可以问问JWT怎么验吗??

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

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

3年前 评论

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