Получение аутентифицированного пользователя при перенаправлении с использованием конечных точек API Laravel - PullRequest
0 голосов
/ 02 июля 2019

Я создаю конечные точки API с использованием Laravel 5.8 и обрабатываю аутентификацию API с помощью Passport Итак, вот простая логика приложения React, которое будет использовать API

  1. При успешной регистрации пользователь будет перенаправлен на панель пользователя
  2. Успешный вход перенаправит пользователя на панель пользователя
  3. Панель инструментов отображает подробную информацию о пользователе

Я настроил конечные точки следующим образом

Route::post('register', 'BaseController@register');

Route::post('login', 'BaseController@login);

BaseController выглядит вот так

public function register(Request $request)
{
    $validator = Validator::make($request->all(), [
        'firstname' => 'required',
        'lastname'  => 'required',
        'username'  => 'required|email',
        'password'  => 'required'
    ]);

    if ($validator->fails()) {
        return response()->json(['Error', $validator->errors()], 401);
    }

    $user = User::create([
        'firstname' => $request->firstname,
        'lastname'  => $request->lastname,
        'username'  => $request->username,
        'password'  => bcrypt($request->password)
    ]);

    $success['token'] = $user->createToken('Pramopro')->accessToken;

    return response()->json(['success' => $success, 'message' => 'You have successfully registered'], 200);
}

public function login() {
    if (Auth::attempt(['username' => request('username'), 'password' => request('password')])) {
        $user = Auth::user();
        $success['token'] = $user->createToken('Pramopro')->accessToken;

        return response()->json(['success' => $success, 'message' => 'You have succesfully signed in.'], 200);
    }
    else
    {
        return response()->json(['error' => 'Unauthorised'], 401);
    }
}

Обе конечные точки API работают нормально при тестировании на Postman.

Следуя логике, как лучше всего настроить конечную точку API, которая будет отображать аутентифицированную информацию о пользователе?

1 Ответ

1 голос
/ 02 июля 2019

Для входа в систему: Я предлагаю вам не отправлять сообщение обратно во внешний интерфейс или устройства.Просто отправьте токен, как показано ниже:

{
    "api_token": "kdlksjdflksjdlfkjsdlkfjslkdfjskjflksdjflskdjflskdjlfksjfd"
}

Вы можете показать сообщение об успехе, если статус равен 200 или если значение для api_token равно true.

Что касается register: Вы просто отправляете сообщение, говорящее об успехе или что-то еще.Если статус 200, то понимается, что пользователь зарегистрирован.

...