【问题标题】:Get Authenticated User Laravel/Lumen Passport获取经过身份验证的用户 Laravel/Lumen Passport
【发布时间】:2018-05-04 12:54:31
【问题描述】:

我正在使用 lumen 构建我的 api 和护照以进行 api 身份验证。

我的用户信息都记录在用户表中,而用户的密码存储在另一个表中(登录名)-(一对一关系)

授权一切正常(我可以创建不记名令牌并使用它访问 auth:api 中间件) 但问题是一旦我使用不记名令牌登录我无法获取经过身份验证的用户信息。

我试过了

Auth::user();
$request->user();
Auth::guard('auth')->user();

但是所有这些函数都返回 null

请帮助我访问经过身份验证的用户。

web.php

$router->group(['prefix' => 'dev', 'namespace' => 'Dev'], function ($router) {
    //Generates Bearer Access Token for api access
    $router->post('accessToken', 'TestController@createAccessToken');

    //protected api
    $router->group(['prefix' => 'auth', 'middleware' => 'auth:api'], function ($router) {
        $router->get('authenticated-user', 'TestController@getAuthenticatedUser');
    });
});

TestController.php

public function getAuthenticatedUser(Request $request)
{
    //die('test');
    dd(Auth::user());//returns null
}

【问题讨论】:

  • 您是否在受auth:api 中间件保护的路由内访问这些函数?
  • 在 auth:api 中间件 @patricus 中是的
  • 你能显示你的路由和控制器代码吗?
  • 问题现在包含路由和控制器代码
  • 抱歉,错过了您使用的是 lumen。您采取了哪些步骤来设置流明的护照?

标签: php laravel oauth lumen laravel-passport


【解决方案1】:

您是否已经使用过 Illuminate\Http\Request? 还是 Dingo\Api\Http\Request?

function getAuthUserData(Request $request){

    $userDt=$request->user();

    return $userDt;
}

这对我有用

【讨论】:

    【解决方案2】:

    根据 Laravel Lumen 7.x 的文档,只要您通过 url Lumen Doc 传递令牌,您就可以使用 Auth::user() 或 $request->user() 来获取经过身份验证的用户

    【讨论】:

    • 您给出的解决方案是不使用护照。
    • 我很确定这是正确的,因为这是我正在使用的,但如果我尝试 e var_dump($request->user()) 或 dd($request->user()) 我得到空值或没有响应(我不知道为什么),但如果我使用 var_dump($request->user()->id) 我得到当前用户 ID。
    猜你喜欢
    • 2019-07-22
    • 2018-11-26
    • 2017-06-19
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 2018-03-03
    • 2020-03-15
    相关资源
    最近更新 更多