Как использовать токены доступа Laravel Passport - PullRequest
0 голосов
/ 15 января 2019

Сначала позвольте мне описать проблему, которую я хочу решить. У меня есть бэкэнд-проект Laravel, который я хочу преобразовать в API, и похоже, что Laravel Passport идеально подходит для этого. Поэтому я установил Laravel Passport в свой проект.

У меня есть клиентское приложение, которому нужно использовать этот API, используя axios. Что я хочу сделать, это сделать запрос на отправку с моим именем пользователя и паролем к API, чтобы получить токен доступа , а затем использовать этот токен доступа для получения или публикации соответствующих данных. Токен доступа создается с помощью следующего кода

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

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

Я с удовольствием выложу больше кода, если необходимо!

1 Ответ

0 голосов
/ 21 января 2019

Может быть, это может помочь. когда я сохраняю токен доступа в моем приложении, я также прикрепляю заголовок

axios.defaults.headers.common['Authorization'] = "Bearer " + token.data.access_token

все ваши запросы axios будут использовать этот заголовок.

получение информации о пользователе

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});
...