Вместо использования md5
или crypt
используйте \Hash::make()
это очень безопасно
Я реорганизовал ваш код, и он делает то же самое
Вам нужно только переименовать ваш c_password
в password_confirmation
Источник
Ниже код делает то же самое, что и ваш код
public function register(Request $register)
{
$this->validate($register, [
'name' => 'required',
'email' => 'required|email',
'password' => 'required|confirmed',
]);
$user = User::create([
'name' => $register->input('name'),
'email' => $register->input('email'),
'password' => $register->input('password'),
]);
$success['token'] = $user->createToken('SSOApp')->accessToken;
return response()->json([
'success' => true,
'token' => $success,
'user' => $user,
]);
}
public function login(Request $request)
{
$request->merge(['password' => \Hash::make($request->input('password'))]);
if (Auth::attempt($request->only(['email', 'password']))) {
$user = Auth::user();
$success['token'] = $user->createToken('SSOApp')->accessToken;
return response()->json([
'success' => true,
'token' => $success,
'user' => $user,
]);
}
return response()->json([
'success' => false,
'message' => 'Invalid Email or Password',
], 401);
}
когда вы хэшируете пароль с помощью crypt
, у него есть ключ для его разблокировки, поэтому есть это decrypt
, но когда вы используете Hash::make()
, у него нет ключа для его взлома или разблокировки, он проверит свой алгоритм, чтобы увидеть, соответствует ли данный пароль алгоритму, который уже существует в базе данных, поэтому crypt
небезопасно и Ха sh :: make намного безопаснее