[英]422 Unprocessable Entity (Laravel/React)
I'm using Laravel sanctum to use Rest API's for Laravel Token based authentication and when I send the request to server using axios to the '/register' route it returns a 422 error code.
const handleRegister = async (e) => {
e.preventDefault()
axios.defaults.withCredentials = true
axios.get(`${hostName}/sanctum/csrf-cookie`).then((res) => {
axios
.post(`${hostName}/register`, {
name: 'admin',
email: 'admin@admin.com',
password: 'user',
})
.then((res) => {
console.log('account created')
//history.push('/dashboard')
})
})
}
和寄存器 Controller 是通過使用 laravel ui --auth package 它看起來像這樣
class RegisterController extends Controller
{
use RegistersUsers;
/**
* Where to redirect users after registration.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \App\Models\User
*/
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
}
還可以在我的 CORS.php 中獲取更多信息,我允許來源並更新了路徑
'paths' => ['api/*', 'sanctum/csrf-cookie', '/login', '/logout', '/register'],
'supports_credentials' => true,
我設法用 tinker 創建了一個用戶,我可以登錄和注銷,但是當我嘗試注冊新用戶時它返回 422
422 錯誤代碼通常意味着您的字段無效,在這種情況下,您的驗證失敗,如果您的表單中沒有密碼確認字段,則刪除驗證器的“已確認”部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.