【问题标题】:Laravel - Getting user from specific authentication guardLaravel - 从特定的身份验证保护中获取用户
【发布时间】:2017-07-16 08:30:38
【问题描述】:

我想为我的网络应用程序创建一个 API。在此 API 中,用户由令牌标识。一切正常,但在我的控制器中,当我想获得用户时,我必须编写如下内容:

Auth::guard('api')->user();

每次我都必须使用这种方法来获取用户。我想使用$request->user() 之类的东西,但是这个选项返回给我null :(

如果我想从请求用户那里得到我该怎么办?谁能帮我?

【问题讨论】:

    标签: php laravel api authentication


    【解决方案1】:

    您还需要将守卫传递给Request::user() 方法。

    $user = $request->user('api');
    

    或者您可以为您的 API 路由组设置默认保护:

    Route::group(['domain' => 'api.app.dev', 'guard' => 'api'], function () {
        // ...
    });
    

    这样,你只需要设置一次,每次调用Auth::user()之类的,都会根据之前设置的守卫获取用户对象。

    有关该主题的更多信息,请查看这篇文章:
    Setting the Guard Per Route in Laravel

    【讨论】:

    • 感谢您的回答! :) 我还有一个问题:当创建 api 时,最好的选择是创建类似 ApiController 的东西,然后将所有方法用于 api 或例如用于用户方法 put 方法在 UserController 中(也有用于 Web 应用程序的方法)?
    • 我会使用一个单独的ApiController 来让事情变得更整洁。
    猜你喜欢
    • 1970-01-01
    • 2020-05-10
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    相关资源
    最近更新 更多