Laravel 5.3 API ROUTE中无法访问auth用户

时间:2017-05-13 07:04:24

标签: php laravel-5.3

这是路由中的代码,控制器。

api路线:

api.php

Route::group(['middleware' => ['auth:api']], function() {
   Route::get('/get-user','ApiController@getUserInfo');
});

控制器:

ApiController.php

use Illuminate\Support\Facades\Auth;

 class ApiControllerextends Controller{

     public function getUserInfo(){
         $user =Auth::user();dd($user);
     }

 }

2 个答案:

答案 0 :(得分:0)

<强> TL; DR

只需阅读控制器类:

class ApiController extends Controller {}

而不是当前的那个:

class ApiControllerextends Controller {}

请注意,您在api.php(ApiController)中引用的控制器不存在。

而不是这个,

Route::group(['middleware' => ['auth:api']], function() {
    Route::get('/get-user','ApiController@getUserInfo');
});

这样做:

Route::group(['middleware' => ['auth:api']], function() {
    Route::get('/get-user','ApiControllerextends@getUserInfo');
});

因为你定义的控制器是ApiControllerextends;不是ApiController

此外,您的控制器方法有错误;

而不是:

use Illuminate\Support\Facades\Auth;

 class ApiControllerextends Controller{

     public function getUserInfo(){
         $user =Auth::user();dd($user);
     }

 }

你应该:

use Illuminate\Support\Facades\Auth;

 class ApiControllerextends extends Controller{

     public function getUserInfo(){
         $user =Auth::user();dd($user);
     }

 }

或者这个:

use Illuminate\Support\Facades\Auth;

 class ApiController extends Controller{

     public function getUserInfo(){
         $user =Auth::user();dd($user);
     }

 }

因为您实际上需要通过使用 extends 扩展它来扩展内置laravel Controller类。

使用上述指南有助于理解和解决您所面临的挑战。

...更多详情here

答案 1 :(得分:0)

您需要从控制器扩展Api控制器,例如

$button = $(".buttonDetails");

路线看起来像

use Illuminate\Support\Facades\Auth;

 class ApiController extends Controller{

     public function getUserInfo(){
         $user =Auth::user();
         dd($user);
     }

 }