Столкнулся ошибкой при аутентификации: при попытке пройти её, метод Auth::attempt
возвращает false
, хотя телефон и пароль правильный.
Я думаю дело в том, что в моей таблице password
называется, как passhash
.
Таблица - User
Класс регистрации:
protected function create(Request $data) {
if (User::where('phone', '=', $data['phone'])->exists()) {
return response()->json(array('status' => 'error', 'msg'=>'The phone number already exists'), 422);
} else {
$user_id = User::create([
'first_name' => $data['first_name'],
'surname' => $data['surname'],
'phone' => $data['phone'],
'passhash' => bcrypt($data['password']),
]);
return response()->json(array('status' => 'created', 'id' => $user_id['id']), 201);
}
}
Класс аутентификации
public function login(Request $request) {
$credentials = [
'phone' => $request['phone'],
'password' => $request['password'],
];
if (Auth::attempt($credentials)) {
return response()->json(array('token' => 'Вы успешно авторизировались!'), 200);
} else {
return response()->json([
'error' => 'Incorrect phone or password',
], 404);
}
}
Меня так же беспокоит правильно ли, что я при регистрации пароль хеширую bcrypt
или лучше использовать Hash::make
и как правильно указывать пароль аутентификации?
Аутентификация в laravel по умолчанию работает с колонкой password
, а точнее с атрибутом модели User $password
.
У вас есть 2 варианта:
1) Переименовать колонку passhash
в password
.
2) Переопределить метод getAuthPassword()
в модели User:
public function getAuthPassword()
{
return $this->passhash;
}
С созданием пользователя все в порядке, Hash::make()
по умолчанию использует алгоритм bcrypt
, поэтому Hash::make()
и bcrypt()
фактически делают одно и то же.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Помогите разобраться, я никак не могу понять, как вывести нужны данные из json массива
сделал проверку по интервалу времени, но не могу решить одну загвоздку
Делаю с сайта ulogin всё по интсрукции, авторизируюсь и получаю токенПотом я делаю запрос: