RegisterController.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. class RegisterController extends Controller
  10. {
  11. use RegistersUsers;
  12. protected $redirectTo = '/accounts';
  13. private $userService;
  14. /**
  15. * Create a new controller instance.
  16. * @param UserService $userService
  17. */
  18. public function __construct(UserService $userService)
  19. {
  20. $this->middleware('guest');
  21. $this->userService = $userService;
  22. }
  23. /**
  24. * Create a new user instance after a valid registration.
  25. *
  26. * @param array $data
  27. * @return UserItem
  28. * @throws RpcException
  29. */
  30. protected function create(array $data)
  31. {
  32. return $this->userService->create($data);
  33. }
  34. /**
  35. * @param RegisterCustomerRequest $request
  36. * @return \Illuminate\Http\RedirectResponse
  37. * @throws RpcException
  38. */
  39. public function register(RegisterCustomerRequest $request)
  40. {
  41. $data = $request->except('_method', '_token');
  42. $user = $this->create($data);
  43. $token = $this->userService->auth($data); // 获取 Token
  44. session([md5($token) => $user]); // 存储用户信息
  45. return redirect()->route('user.profile')->cookie('jwt-token', $token);
  46. }
  47. }