Конечная точка обновления API с аутентификацией Passport API - PullRequest
0 голосов
/ 03 июля 2019

Я успешно реализовал аутентификацию API с использованием Laravel Passport и хочу, чтобы аутентифицированный пользователь обновил свою личную информацию.Итак, я создал конечную точку API Route::put('user', 'UserController@updatePersonalInfo')

Метод контроллера updatePersonalInfo() выглядит следующим образом

/**
* only authenticated user can update personal info
*
* api authentication by Passport
*/
public function updatePersonalInfo(Request $request)
{
    // check for the authenticated user
    $user = auth()->user();

    if ($user) {
        // get user sex & dob input, then update the sex & dob 
        $user->update($request->only(['sex', 'dob']));

        // return the updated user
        return new UserResource($user);
    }
}

Протестировал конечную точку API в Postman, передав токен-носитель и формузначения, но поля не обновляются, и я получаю те же пользовательские записи без обновления.

Я не могу определить причину, нужна помощь, чтобы выяснить, в чем проблема.

1 Ответ

0 голосов
/ 05 июля 2019

Во-первых, если вы хотите, чтобы только аутентифицированные пользователи использовали эту конечную точку, используйте промежуточное ПО 'auth: api':

Route::group(['middleware' => 'auth:api'], function () {
    // Your endpoints here
});

Во-вторых, при работе с Api и Passport вы можете получить текущего пользователя из переменной $ request:

$request->user();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...