2017-02-17 147 views
2

我已經使用Laravel 5.3安裝了Passport,並配置爲使用個人訪問令牌。我將用戶名和密碼發送給`/ oauth/token'路由並獲取令牌。一切都很好,直到這裏。帶護照的Laravel 5.3:使用個人訪問令牌獲取當前用戶

但是,如果我想獲取當前登錄的用戶,並且之前使用$user = Auth::user();,那麼我會得到null的值,因爲Laravel不保留API令牌的任何會話。在這種情況下,我如何獲得當前用戶?我可以修改任何文件以獲取當前用戶以及令牌嗎?

在此先感謝阿里夫

回答

1

首先,我用護照在OAuth2流程password_clients。我流明/ Laravel版本作曲家是5.4 *

我用下面的語句在我流明的應用程序(注意我沒有使用外牆):

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

這大約相當於門面電話:

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

希望這有助於..

類REGA rds,

PS。我的IDE(Webstorm)無法擴展Facede調用,而是單獨應用('auth')調用。爲了確定返回什麼類,我發現自己正在做例如。一個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 
相關問題