Итак, наконец, я отвечаю на свой вопрос. Надеюсь, это поможет кому-то столкнуться с подобной проблемой.
JWT аутентификации может быть сделано с помощью Laravel 5.3 Паспорт, просто выполнить следующие шаги:
ИЛИ следующие шаги:
- композитор требует laravel/паспорт
- добавить
Laravel\Passport\PassportServiceProvider::class,
своих поставщикам приложений
- PHP ремесленник мигрировать
- PHP мастерового паспорта: установить
- Добавить
HasApiTokens
признак вашей модели пользователя
- Passport :: маршруты(); в AppServiceProvider
- Настройка драйвера апи паспорту
После этого создайте 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) Это поможет вам маркер доступа, вы можете использовать этот маркер, чтобы сделать другие запросы в вашем приложении с Authorization
заголовком и Bearer XXX
где ххх является маркер доступа, полученный от /API/Идент конечной точки.
Теперь сделайте запрос GET на /api/user
с заголовком Authorization
и значением токена, это вернет данные аутентифицированного пользователя. (например: http://pix.toile-libre.org/upload/original/1483095018.png)
Я также разместил эти шаги на своем блоге на http://chatterjee.pw/larvel-passport-jwt-authentication/
Я надеюсь, что это помогает!
можем ли мы сделать пользовательский токен? не из объекта пользователя –
Спасибо за вашу долю, но: 1. Нет обновленного_ответа 2. Я не нашел здесь ни одного сотрудника, связанного с JWT, это просто access_token 3. Я не понимал, почему вы потратили так много время на этом, это метод «попытка()» метода «Auth» и «createToken()» признака «HasApiTokens» –
Это маркерное решение АБСОЛЮТНО НЕ является JWT и поэтому не является ответом на ваш оригинальный вопрос, что делает этот вопрос и ответ вводят в заблуждение для других людей. Потраченный много времени, думая, что это было JWT-решение из-за вопросов и ответов здесь. –