RegisterController.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\MicroApi\Exceptions\RpcException;
  4. use App\MicroApi\Items\UserItem;
  5. use App\MicroApi\Services\UserService;
  6. use App\Http\Controllers\Controller;
  7. use App\Shop\Customers\Requests\RegisterCustomerRequest;
  8. use Illuminate\Foundation\Auth\RegistersUsers;
  9. use Illuminate\Support\Facades\Auth;
  10. class RegisterController extends Controller
  11. {
  12. use RegistersUsers;
  13. protected $redirectTo = '/accounts';
  14. private $userService;
  15. /**
  16. * Create a new controller instance.
  17. * @param UserService $userService
  18. */
  19. public function __construct(UserService $userService)
  20. {
  21. $this->middleware('guest');
  22. $this->userService = $userService;
  23. }
  24. /**
  25. * Create a new user instance after a valid registration.
  26. *
  27. * @param array $data
  28. * @return UserItem
  29. * @throws RpcException
  30. */
  31. protected function create(array $data)
  32. {
  33. return $this->userService->create($data);
  34. }
  35. /**
  36. * @param RegisterCustomerRequest $request
  37. * @return \Illuminate\Http\RedirectResponse
  38. * @throws RpcException
  39. */
  40. public function register(RegisterCustomerRequest $request)
  41. {
  42. $data = $request->except('_method', '_token');
  43. if ($user = $this->create($data)) {
  44. $token = Auth::login($data);
  45. return redirect()->route('accounts')->cookie('jwt_token', $token);
  46. } else {
  47. throw new AuthenticationException('注册失败,请重试');
  48. }
  49. }
  50. }