Laravel Passport вернул всех пользователей

#laravel

#laravel

Вопрос:

Я создал в своем приложении систему авторизации пользователей на основе Passport, и теперь у меня возникли некоторые проблемы. Когда я отправляю токен, мой метод details () возвращает всех пользователей приложения вместо определенного. Я вставляю свой код, чтобы точно показать, что происходит.

Метод входа в систему:

 public function login(){ 
        if(Auth::attempt(['email' => request('email'), 'password' => request('password')])){ 
            $user = Auth::user(); 
            $success['token'] =  $user->createToken('myapp')->accessToken; 
            $user->api_token = $success['token'];
            $user->save();
            return response()->json(['user' => $success], $this->successStatus); 
        } 
        else{ 
            return response()->json(['error'=>'Unauthorised'], 401); 
        } 
    }
  

Он возвращает что-то вроде этого:

 {
    "user": {
        "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImFjMzEwM2UyMzIwNGIxMjg3M2E3ZWMyZmUyNGJkNDEzMTQyN2I1ZWUzMWRjOGFhZjRhMzcyMDQzM2ZmNGJiZGJjZGU3ZjQ1ZjZkNzZmMGRkIn0.eyJhdWQiOiIxIiwianRpIjoiYWMzMTAzZTIzMjA0YjEyODczYTdlYzJmZTI0YmQ0MTMxNDI3YjVlZTMxZGM4YWFmNGEzNzIwNDMzZmY0YmJkYmNkZTdmNDVmNmQ3NmYwZGQiLCJpYXQiOjE1NTIxMzIyODMsIm5iZiI6MTU1MjEzMjI4MywiZXhwIjoxNTgzNzU0NjgzLCJzdWIiOiIxOCIsInNjb3BlcyI6W119.LmwTCSlRTrZ9pq01JK6tfsx5yjjA9qfidTws-0_vVc-UsFKQOJSk-K1uAYMR5gd0SQzC8VyG8bIJLVdPZbm5ggXkk-itN1bHEdZPFT7zdx7rOTFVF1ri9-chZIDL6nElosk3SOw_1QwuwOxiMHBB7ss9ItPHrtwkNEMxpeh16henknIZVYct0Vn1grztdnh7EJCM9SkKjIxqF0yozuw-wsN-UmsLvNoFZkOFWuNCPC9Mawx_ip2VBD26mwcxzTgD1XFwRloTCtDOAZfQ4DfgS_YuuXEPn8pfrkp92C1lxGXp09Wu0ZdzFaIf8LWEQXCgwlqvsVuFSnKt3lGyEPuHuJc_DjZZTcWgjslVQr7RhEqWQmRK2xlJpiAcZyWoI1vhfYLmullr1vf7nGCoRsp3UDZB64J2oPVjomcClEfseAKQbIq_9roKxIGjTeYdaF2vwHCosaxzrak7AqBHkze-z5cL8ix9G6rWBeg4sDUPhiLDgrgHK4ywxBqHMyto-Ywak56pzq1767r4reunDyNYDhLwSt0IiK1Hmx7ZQ9j6_EWy3NLf1oy7eGc33bj7eQNusbEa0TfcXujNK299RAEnTFLEc4kuS_otHzGrwSvOx2zYPsZkctZYn19YoyKaeP7hM1ek0zfIlGXsxQI84osPl91U7PHqAufIK6YJeizcik0"
    }
}
  

Когда у меня есть свой токен для определенного пользователя, я отправляю этот токен в details ().

Подробный метод:

 public function details(Request $request) 
    { 
        $userData = $request->user()->with('kids')->with('hobbies')->with('conversations')->get();

        return response()->json(['user' => $userData], $this->successStatus); 
    }
  

Вот мой api.php файл маршрута:

 Route::group(['middleware' => 'auth:api'], function(){
    Route::get('details', 'UserController@details');
});
Route::post('login', 'UserController@login');
Route::post('register', 'UserController@register');
  

Я не знаю, почему мой метод details возвращает всех пользователей приложения. Есть ли у вас какие-либо советы, как я могу это исправить? Я действительно ценю любую помощь в решении этой проблемы.

Комментарии:

1. В вашем методе details какой вывод Auth::user()->id отображается, вы могли бы попробовать?

2. Привет, var_dump(Auth::user()-> id) возвращает значение int(18). Я попробовал что-то вроде $userData = User:: find (Auth::user ()-> id)-> with (‘дети’)-> with (‘хобби’)-> with (‘беседы’)-> get () но это все равно возвращает всех пользователей

3. Я меняю свой запрос на $userData = User:: where(‘id’, Auth::user()-> id)-> with (‘дети’)-> with(‘хобби’)-> with (‘беседы’)-> firstOrFail(); и это работает нормально.