【问题标题】:Laravel 5.7 - Spark API authentication session issuesLaravel 5.7 - Spark API 身份验证会话问题
【发布时间】:2019-05-03 01:56:46
【问题描述】:

我只是在这个问题的开头说我在一段时间不使用 Laravel 后又重新开始使用它,似乎有很多变化,而当前有问题的项目正在使用 A LOT of the bake in “Laravel 生态系统”...所以我可能会在这里遗漏一些上下文。

问题:从 Laravel 5.6 升级到 5.7 后,由于会话过期,即使在登录后立即(提示注销),auth-guarded API 路由也会失效。

配置:

/config/auth.php

'guards' => ['api' => ['driver' => 'spark']]

/routes/api.php

Route::group([
    'middleware' => 'auth:api'
], function () {
    // Routes in here are busting
}

/app/Providers/SparkServiceProvider.php

protected $usesApi = true; // yup

其他信息:

  • 该网站使用 Socialite 插件来管理用户身份验证
  • 请求中确实有spark_token
  • Vue 客户端进行调用,通过登录表单成功验证后,在下一页加载时获取状态 401 Unauthorized
  • 在从 Laravel 5.6 升级到 5.7 之前运行良好

有什么想法吗?我翻阅了 Laravel 5.7 发行说明/升级指南,没有找到任何相关信息。

【问题讨论】:

  • 会话到期? API 路由通常没有会话。
  • 从一开始应用程序就告诉我会话已过期,很可能是对未经授权的呼叫的默认反应。
  • @Meowts,可能正在访问的路由不在所发行令牌的“范围”内?
  • @TJWeems 我不知道令牌范围,显然这是一件事,但我找不到与此有关的任何定义。让我失望的是它没有使用 Passport,而且有很多样板文件需要筛选。可能需要一把大锤。
  • @Meowts - 你找到解决方案了吗?

标签: laravel laravel-5 laravel-spark


【解决方案1】:

找到适合我的解决方案:

添加到app/Http/Middleware/EncryptCookies.php

    /**
     * Indicates if cookies should be serialized.
     * @var bool
     */
    protected static $serialize = false;

然后从浏览器中清除 cookie,然后重新尝试登录。

【讨论】:

    猜你喜欢
    • 2019-05-18
    • 2019-06-14
    • 2020-09-01
    • 2019-05-14
    • 2023-03-14
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 2014-05-10
    相关资源
    最近更新 更多