【问题标题】:What auth:api middleware does and why session not working when I use itauth:api 中间件的作用以及为什么我使用它时会话不起作用
【发布时间】:2020-02-17 18:13:19
【问题描述】:

我无法弄清楚 auth:api 中间件的作用。
这些是我的路线:

Route::group(['middleware' => ['auth:api']], function () {
    Route::get('test', 'MainController@home');
});

据我所知:

  • 路由test经过auth中间件
  • auth 和 api 之间的冒号表示将api 保护应用于中间件。它与api 中间件无关。

如果我知道了,我不知道为什么会话似乎在我的路线上不起作用。
我放置的任何会话变量总是得到空值。

【问题讨论】:

  • 正如尼克在下面的回答中提到的那样,开箱即用的 api 身份验证不使用会话。您究竟是如何尝试对您的用户进行身份验证的,例如用户名和密码、令牌(如果有的话是什么令牌)、Laravel 护照或其他东西。另外,您将会话用于什么目的,即您只是想在请求之间保留一些元数据还是让用户“登录”?

标签: laravel authentication session laravel-middleware


【解决方案1】:

API 不使用会话。你需要一个守卫WEB。

Route::group(['middleware' => ['auth:web']], function () {
    Route::get('test', 'MainController@home');
});

【讨论】:

  • 我试过了,但是用户没有通过认证,我不知道为什么
  • 我用我的扩展了 API 防护,它可以工作。如果我对 WEB 使用相同的扩展防护,它就不起作用。
猜你喜欢
  • 1970-01-01
  • 2017-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多