Ответ 1
Итак, наконец, я отвечаю на свой вопрос. Надеюсь, это поможет кому-то столкнуться с подобной проблемой.
Проверка подлинности JWT может быть выполнена с использованием паспорта Laravel 5.3, просто выполните следующие шаги:
- Установить паспорт обычно, как описано в этой ссылке https://laravel.com/docs/master/passport#installation
ИЛИ выполните следующие действия:
- композитор требует laravel/паспорт
- добавьте
Laravel\Passport\PassportServiceProvider::class,
к вашим провайдерам приложений - Перенос php-artisan
- Паспорт:
- Добавить свойство
HasApiTokens
в вашу модель пользователя - Паспорт :: маршруты(); в AppServiceProvider
- Настройка драйвера api в паспорт
После этого создайте UserController и добавьте в него следующие методы:
public function auth(Request $request)
{
$params = $request->only('email', 'password');
$username = $params['email'];
$password = $params['password'];
if(\Auth::attempt(['email' => $username, 'password' => $password])){
return \Auth::user()->createToken('my_user', []);
}
return response()->json(['error' => 'Invalid username or Password']);
}
public function index(Request $request)
{
return $request->user();
}
В маршрутах /api.php добавьте следующие маршруты:
Route::post('auth', '[email protected]');
Route::group(['middleware' => 'auth:api'], function(){
Route::resource('user', '[email protected]');
});
Теперь сделайте запрос POST для http://localhost:8000/auth
с адресом электронной почты и паролем, как показано на скриншоте (http://pix.toile-libre.org/upload/original/1483094937.png). Это будет вы используете accessToken, вы можете использовать этот токен, чтобы делать другие запросы в своем приложении с заголовком Authorization
и Bearer XXX
где xxx - это accessToken, который вы получили из конечной точки /api/auth.
Теперь сделайте запрос GET для /api/user
с заголовком Authorization
и значением токена, это вернет данные аутентифицированного пользователя. (например: http://pix.toile-libre.org/upload/original/1483095018.png)
Я также разместил эти шаги в своем блоге по адресу http://chatterjee.pw/larvel-passport-jwt-authentication/
Надеюсь, это поможет!