ForgotPasswordController.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\UserInfo;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Str;
  6. use Mail;
  7. use App\Mail\ForgotPassword;
  8. class ForgotPasswordController extends Controller
  9. {
  10. /**
  11. * Display a listing of the resource.
  12. *
  13. * @return \Illuminate\Http\Response
  14. */
  15. public function index()
  16. {
  17. //
  18. }
  19. /**
  20. * Store a newly created resource in storage.
  21. *
  22. * @param \Illuminate\Http\Request $request
  23. * @return \Illuminate\Http\Response
  24. */
  25. public function store(Request $request)
  26. {
  27. //
  28. $user = UserInfo::where('email',$request->get('email'))->first();
  29. if(!$user){
  30. return $this->error('no user',404,404);
  31. }
  32. $resetToken = Str::uuid();
  33. $user->reset_password_token = $resetToken;
  34. $ok = $user->save();
  35. if(!$ok){
  36. return $this->error('fail on update reset_password_token',500,500);
  37. }
  38. Mail::to($request->get('email'))
  39. ->send(new ForgotPassword($resetToken,$request->get('lang'),$request->get('dashboard')));
  40. if(Mail::failures()){
  41. return $this->error('send email fail',[],200);
  42. }
  43. return $this->ok('');
  44. }
  45. /**
  46. * Display the specified resource.
  47. *
  48. * @param \App\Models\UserInfo $userInfo
  49. * @return \Illuminate\Http\Response
  50. */
  51. public function show(UserInfo $userInfo)
  52. {
  53. //
  54. }
  55. /**
  56. * Update the specified resource in storage.
  57. *
  58. * @param \Illuminate\Http\Request $request
  59. * @param \App\Models\UserInfo $userInfo
  60. * @return \Illuminate\Http\Response
  61. */
  62. public function update(Request $request, UserInfo $userInfo)
  63. {
  64. //
  65. }
  66. /**
  67. * Remove the specified resource from storage.
  68. *
  69. * @param \App\Models\UserInfo $userInfo
  70. * @return \Illuminate\Http\Response
  71. */
  72. public function destroy(UserInfo $userInfo)
  73. {
  74. //
  75. }
  76. }