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, [ 'username' => ['required', 'string', 'max:16', 'unique:users'], '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(Request $request) { $data = Request::all(); if (Request::input('password') != Request::input('confirmation')) { return Response()->json(['message'=>"Those passwords don't match!", 'badInputs'=>['password','confirmation']]); } $valid = Validator::make($data, [ 'username' => ['required', 'string', 'max:16', 'unique:users'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'string', 'min:8'], ]); if ($valid->stopOnFirstFailure()->fails()) { $error = $valid->errors()->first(); $messages = $valid->messages()->get('*'); return Response()->json(['message'=>$error, 'badInputs'=>[array_keys($messages)]]); } $user = new User; $user->username = $data['username']; $user->email = $data['email']; $user->password = Hash::make($data['password']); $user->save(); Auth::login($user); Request::session()->regenerate(); return Response()->json('good'); } }