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', 'alpha_num', 'max:20', 'unique:users', new NotBlacklisted, new NotDeletedUsername ], 'email' => ['required', 'email', 'max:254', 'confirmed'], 'password' => ['required', 'min:8'], 'terms' => ['required', 'accepted'] ]); } /** * Create a new user instance after a valid registration. * * @param array $data * @return \App\User */ protected function create(array $data) { $userId = Uuid::uuid4(); $recipient = Recipient::create([ 'email' => $data['email'], 'user_id' => $userId ]); $twoFactor = app('pragmarx.google2fa'); return User::create([ 'id' => $userId, 'username' => $data['username'], 'default_recipient_id' => $recipient->id, 'password' => Hash::make($data['password']), 'two_factor_secret' => $twoFactor->generateSecretKey() ]); } }