ForgotPasswordController.php 2.3 KB

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