RegisterController.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\User;
  4. use App\Http\Requests\UserStoreRequest;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\DB;
  7. use App\Http\Controllers\Controller;
  8. use Illuminate\Support\Facades\Hash;
  9. use Illuminate\Auth\Events\Registered;
  10. use Illuminate\Support\Facades\Validator;
  11. use Illuminate\Foundation\Auth\RegistersUsers;
  12. use Illuminate\Validation\ValidationException;
  13. class RegisterController extends Controller
  14. {
  15. /*
  16. |--------------------------------------------------------------------------
  17. | Register Controller
  18. |--------------------------------------------------------------------------
  19. |
  20. | This controller handles the registration of new users as well as their
  21. | validation and creation. By default this controller uses a trait to
  22. | provide this functionality without requiring any additional code.
  23. |
  24. */
  25. use RegistersUsers;
  26. /**
  27. * Handle a registration request for the application.
  28. *
  29. * @param \App\Http\Requests\UserStoreRequest $request
  30. * @return \Illuminate\Http\JsonResponse
  31. */
  32. public function register(UserStoreRequest $request)
  33. {
  34. $validated = $request->validated();
  35. event(new Registered($user = $this->create($validated)));
  36. return response()->json([
  37. 'message' => 'account created',
  38. 'token' => $user->createToken('2FAuth')->accessToken,
  39. 'name' => $user->name,
  40. ], 201);
  41. }
  42. /**
  43. * Create a new user instance after a valid registration.
  44. *
  45. * @param array $data
  46. * @return \App\User
  47. */
  48. protected function create(array $data)
  49. {
  50. return User::create([
  51. 'name' => $data['name'],
  52. 'email' => $data['email'],
  53. 'password' => Hash::make($data['password']),
  54. ]);
  55. }
  56. }