首页 文章

带有Passport的Laravel 5.3:使用个人访问令牌获取当前用户

提问于
浏览
3

我已经使用Laravel 5.3安装了Passport并配置为使用个人访问令牌 . 我将用户名和密码发送到`/ oauth / token'路由并获取令牌 . 一切都很好,直到这里 .

但是如果我想用之前得到的 $user = Auth::user(); 获取当前登录用户,我得到 null 值,因为Laravel没有为API令牌保留任何会话 . 在这种情况下,我如何获得当前用户?我可以修改任何文件以使当前用户获得令牌吗?

谢谢提前Arif

1 回答

  • 2

    首先,我在OAuth2流程中使用Passport和password_clients . 我作曲家的Lumen / Laravel版本是5.4 . *

    我在我的Lumen应用程序中使用以下语句(注意我没有使用外观):

    $user = app('auth')->guard()->user()

    这可能相当于门面调用:

    $user = Auth::guard()->user()

    希望这可以帮助..

    亲切的问候,

    PS . 为了计算在不使用外墙时返回的类,我发现自己在做例如 . a echo get_class(app('auth')) 获取类并告诉我的IDE是什么类型的变量 $auth ..

    我的一个流明控制器的片段

    $auth = app('auth');
    // echo get_class($auth); to get class
    // -> \Illuminate\Auth\AuthManager in this case
    /* @var $auth \Illuminate\Auth\AuthManager */
    
    $guard = $auth->guard();
    // idem as above
    /* @var $guard \Illuminate\Auth\RequestGuard */
    
    $user = $guard->user();
    /* @var $auth \App\Auth\User */
    
    // this tells Webstorm/Netbeans/.. to consider $auth an instance of AuthManager and enables autocompletion of class methods
    

相关问题