['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)]]); } $prws = array_merge(range('a', 'z'), range('A', 'Z'), range(0, 8)); shuffle($prws); $sc = substr(implode($prws), 0, 56); $user = new User; $user->username = $data['username']; $user->email = $data['email']; $user->password = Hash::make($data['password']); $user->token = $sc; $user->save(); Request::session()->regenerate(); Auth::login($user); setcookie('gtok', $sc, time()+(345600*30), "/", $_POST['host']); return Response()->json(['message'=>'Success!', 'badInputs'=>[]]); } }