簡體   English   中英

422 無法處理的實體(Laravel/React)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM