Я пытаюсь создать API аутентификации с помощью laravel 10. В API я хочу, чтобы пользователь регистрировался с помощью адреса электронной почты или номера телефона, но при входе в систему я хочу использовать только номер телефона.
Итак, я использовал этот метод в форме регистрации и входа, но когда я тестировал его в почтальоне, я получаю следующую ошибку:
Ошибка «BadMethodCallException: метод Illuminate\Validation\Validator::validatePhone не существует».
API-контроллер
Код: Выделить всё
// Register API (POST, formdata)
public function register(Request $request){
// data validation
$request->validate([
"name" => "required",
"email" => "email|unique:users",
"phone" => "required|phone:ML",
"password" => "required|confirmed"
]);
// Author model
User::create([
"name" => $request->name,
"email" => $request->email,
"phone" => $request->phone,
"password" => Hash::make($request->password)
]);
// Response
return response()->json([
"status" => true,
"message" => "User created successfully"
]);
}
// Login API (POST, formdata)
public function login(Request $request){
// Data validation
$request->validate([
//"email" => "required|email",
"phone" => "required|phone:ML",
"password" => "required"
]);
// Auth Facade
if(Auth::attempt([
//"email" => $request->email,
"phone" => $request->phone,
"password" => $request->password
])){
$user = Auth::user();
$token = $user->createToken("myToken")->accessToken;
return response()->json([
"status" => true,
"message" => "Login successful",
"access_token" => $token
]);
}
return response()->json([
"status" => false,
"message" => "Invalid credentials"
]);
}
Источник: https://stackoverflow.com/questions/781 ... -not-exist
Мобильная версия