ForgotPasswordController.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Mail\ForgotPassword;
  4. use App\Models\UserInfo;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Http\Response;
  7. use Illuminate\Support\Facades\Log;
  8. use Illuminate\Support\Facades\Mail;
  9. use Illuminate\Support\Str;
  10. class ForgotPasswordController extends Controller
  11. {
  12. /**
  13. * Display a listing of the resource.
  14. *
  15. * @return Response
  16. */
  17. public function index()
  18. {
  19. //
  20. }
  21. /**
  22. * Store a newly created resource in storage.
  23. *
  24. * @return 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. * @return Response
  55. */
  56. public function show(UserInfo $userInfo)
  57. {
  58. //
  59. }
  60. /**
  61. * Update the specified resource in storage.
  62. *
  63. * @return Response
  64. */
  65. public function update(Request $request, UserInfo $userInfo)
  66. {
  67. //
  68. }
  69. /**
  70. * Remove the specified resource from storage.
  71. *
  72. * @return Response
  73. */
  74. public function destroy(UserInfo $userInfo)
  75. {
  76. //
  77. }
  78. }