MemberController.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace App\Http\Controllers\Home;
  3. use App\Models\Member;
  4. use Illuminate\Foundation\Auth\AuthenticatesUsers;
  5. use Illuminate\Http\Request;
  6. use App\Http\Controllers\Controller;
  7. use Illuminate\Support\Facades\Auth;
  8. class MemberController extends Controller
  9. {
  10. use AuthenticatesUsers;
  11. public function __construct()
  12. {
  13. $this->middleware('guest:member')->except(['index','logout']);
  14. }
  15. public function index()
  16. {
  17. return '会员主页登录后才能访问'.auth('member')->user()->name.auth('member')->user()->phone;
  18. }
  19. //注册表单
  20. public function showRegisterForm()
  21. {
  22. return view('home.member.register');
  23. }
  24. //注册
  25. public function register(Request $request)
  26. {
  27. $this->validate($request,[
  28. 'captcha' => 'required|captcha',
  29. 'name' => 'required',
  30. 'phone' => 'required|numeric|regex:/^1[3456789][0-9]{9}$/|unique:members',
  31. 'password' => 'required|confirmed|min:6|max:14'
  32. ],[
  33. 'captcha.captcha' => '验证码错误'
  34. ]);
  35. $data = array_merge($request->all(),['uuid'=>\Faker\Provider\Uuid::uuid()]);
  36. if ($member = Member::create($data)){
  37. $this->guard()->login($member);
  38. }
  39. return back()->with(['status'=>'系统错误']);
  40. }
  41. //登录表单
  42. public function showLoginForm()
  43. {
  44. return view('home.member.login');
  45. }
  46. public function redirectTo()
  47. {
  48. return route('home.member');
  49. }
  50. /**
  51. * @param Request $request
  52. * 登录验证
  53. */
  54. public function validateLogin(Request $request)
  55. {
  56. $this->validate($request, [
  57. 'captcha' => 'required|captcha',
  58. $this->username() => 'required|regex:/^1[3456789][0-9]{9}$/',
  59. 'password' => 'required|string',
  60. ],[
  61. 'captcha.captcha'=>'图形验证码错误',
  62. ]);
  63. }
  64. /**
  65. * @return string
  66. * 登录验证的字段
  67. */
  68. public function username()
  69. {
  70. return 'phone';
  71. }
  72. //注销、退出
  73. public function logout(Request $request)
  74. {
  75. $this->guard()->logout();
  76. $request->session()->invalidate();
  77. return redirect('/');
  78. }
  79. protected function guard()
  80. {
  81. return Auth::guard('member');
  82. }
  83. }