Я использую Laravel 5.7 и «tymon / jwt-auth»: «1.0.0-rc.3» для аутентификации. После того как я зарегистрировал пользователя, когда я пытаюсь подтвердить его подлинность, я всегда получаю значение bool: true или false, а не токен.
Я перепробовал все "исправления", которые я нашел в Интернете, и ничего не работает. Чего мне не хватает?
Это метод регистра:
protected function create(array $data)
{
if ($data['legitimation_id'][0] === 'E') {
$user_type = 1;
}
else if ($data['legitimation_id'][0] === 'P') {
$user_type = 2;
}
$data['user_type'] = $user_type;
$data['password'] = Hash::make($data['password']);
$user = User::create($data);
LegitimationController::delete($data['legitimation_id']);
return $user;
}
public function register(Request $request) {
$data = $request->all();
if ($this->validator($data)->fails()) {
return $this->sendError('Validation Error.', $this->validator($data)->errors());
}
if (mb_substr($data['legitimation_id'], 0, 1) != 'P' && mb_substr($data['legitimation_id'], 0, 1) != 'E' ) {
return $this->sendError('Validation Error.', array("legitimation_id" => 'Fail'));
};
$user = $this->create($data);
$success = ['first_name' => $user['first_name'], 'last_name' => $user['last_name']];
return $this->sendResponse($success, 'Succes');
}
Это метод входа в систему:
public function login(Request $request)
{
$credentials = $request->only('email', 'password');
$jwt_token = null;
if (!$jwt_token = auth('api')->attempt($credentials)) {
$this->sendError("Unauthorized", ['error' => 'Invalid Email or Password'], 401);
}
$this->sendResponse(['token' => $jwt_token], "Succes");
}
api.php
Route::group([
'middleware' => 'cors',
'prefix' => 'v1'
], function () {
Route::post('register', 'Auth\RegisterController@register');
Route::post('login', 'Auth\LoginController@login');
});
auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'jwt',
'provider' => 'users',
],
],