#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(); и это работает нормально.