在没有 Lumen/Laravel 会话的情况下使用 Lumen + Dingo + JWT

Posted

技术标签:

【中文标题】在没有 Lumen/Laravel 会话的情况下使用 Lumen + Dingo + JWT【英文标题】:Using Lumen + Dingo + JWT without Lumen/Laravel Session 【发布时间】:2016-07-26 12:43:08 【问题描述】:

我们正在使用基于以下 repo lumen-dingo 的 Lumen/Dingo 实现。我们在现有框架之上构建它,这带来了一些小问题。

我们的框架在整个应用程序中都使用自己的会话对象,无法更改它。我们理想情况下想要更改 Lumen + Dingo + JWT 设置,以便它使用我们的会话。

我不知道在这里做什么最好。我能想到三种可能的解决方案:

    在 Lumen 中创建一个自定义会话驱动程序,它将启动我们的框架会话。 完全忽略 Lumen 会话

    在普通会话旁边使用流明会话,因此它们都同时处于活动状态,但我不知道这是否可行。

    /*
    |--------------------------------------------------------------------------
    | Authentication Guards
    |--------------------------------------------------------------------------
    |
    | Next, you may define every authentication guard for your application.
    | Of course, a great default configuration has been defined for you
    | here which uses session storage and the Eloquent user provider.
    |
    | All authentication drivers have a user provider. This defines how the
    | users are actually retrieved out of your database or other storage
    | mechanisms used by this application to persist your user's data.
    |
    | Supported: "session"
    |
    | NOTE: "token" driver is not supported in JWT Auth
    |
    */
    
    'guards' => [
        'api' => [
            'driver' => 'session',
            'provider' => 'users'
        ],
    ],
    

我正在尝试编辑这些详细信息,但我一直遇到错误。我不知道我是否只是做错了什么,或者甚至可能完全走错了路。

【问题讨论】:

【参考方案1】:

您为什么使用 Lumen 会话?

Lumen 仅用于构建 API,因此应该是无状态的!

在 Lumen 5.2 中,他们完全移除了对会话的支持。

Lumen 5.2 代表了从精简 Lumen 到专注于服务无状态 JSON API 的转变。因此,框架不再包含会话和视图。

【讨论】:

嗯,很有趣。好吧,我的项目基于正常会话对象中的负载的存储库。当我再次删除它时会没有问题。另请注意,我 a,使用 JWT 组件,我需要提供一个保护,驱动程序是会话。

以上是关于在没有 Lumen/Laravel 会话的情况下使用 Lumen + Dingo + JWT的主要内容,如果未能解决你的问题,请参考以下文章

会话不在 Lumen PHP 框架中持续存在

Lumen / Laravel问题中的多个查询

Laravel/lumen 5.2 从现有数据库生成迁移表

如何在 LUMEN 中使用 GATE 立面(Laravel 6.2)

工匠迁移结果:SQLSTATE [HY000]:一般错误:LUMEN / LARAVEL 上的 1005

是否可以在没有 BackgroundWorker 的情况下使 WinForms 响应? [关闭]