Идентификация пользователя Laravel для API - PullRequest
0 голосов
/ 23 июня 2018

Я хочу создать веб-приложение Vue, которое обращается к Laravel API.Не требуется аутентификация (например, электронная почта или пароль), за исключением того, что я должен знать, кто делает запрос.Моя идея состояла в том, чтобы дать каждому клиенту случайный токен при первом запросе, который затем будет отправляться при каждом последующем запросе.

Каков наилучший способ реализовать это в Laravel?Я нашел это, но это выглядело сложным и не совсем то, что мне нужно: https://laravel.com/docs/5.6/passport#consuming-your-api-with-javascript

Ответы [ 2 ]

0 голосов
/ 23 июня 2018

JWT, вероятно, лучший подход. Существует отличная реализация Laravel , которая может создавать токен на основе чего угодно (подробности см. В wiki ), и она намного проще, чем Passport. Если вам нужно только проверить, является ли пользователь тем же самым и ничем иным, вы можете сгенерировать UUID и использовать его для создания токена.

0 голосов
/ 23 июня 2018

добавить поле api_token в вашу пользовательскую таблицу

$table->string('api_token', 60)->unique();

генерировать api_token для новых пользователей. $user->token=str_random(60) в регистре

Теперь вы можете использовать это промежуточное ПО

Route::group(['prefix' => 'api', 'middleware' => 'auth:api'], function () {
     //all the api calls
});

В заголовке вашего запроса добавьте авторизованный токен пользователя, как этот

'headers' => [
    'Accept' => 'application/json',
    'Authorization' => 'Bearer '.$token,
],

Чтобы получить значение токена, необходимо войти в систему с помощью адреса электронной почты и пароля Контроллер:

$credentials = $request->only('email', 'password');

if (Auth::attempt($credentials)) {
       return response()->json(Auth::User());

}

В заголовке вашего запроса добавьте токен, подобный этому
Теперь вы можете получить доступ к вашему пользователю с помощью request()->user()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...