CommController.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace App\Http\Controllers\Passport;
  3. use App\Http\Requests\Passport\CommSendEmailVerify;
  4. use Illuminate\Http\Request;
  5. use App\Http\Controllers\Controller;
  6. use Illuminate\Http\Exceptions\HttpResponseException;
  7. use Illuminate\Support\Facades\Mail;
  8. use Illuminate\Support\Facades\Redis;
  9. class CommController extends Controller
  10. {
  11. public function isEmailVerify () {
  12. return response([
  13. 'data' => (int)config('v2board.email_verify', 0) ? 1 : 0
  14. ]);
  15. }
  16. public function sendEmailVerify (CommSendEmailVerify $request) {
  17. $email = $request->input('email');
  18. $redisKey = 'sendEmailVerify:' . $email;
  19. if (Redis::get($redisKey)) {
  20. abort(500, '验证码已发送,请过一会在请求');
  21. }
  22. $code = rand(100000, 999999);
  23. $subject = config('v2board.app_name', 'V2Board') . '邮箱验证码';
  24. Mail::send(
  25. 'mail.sendEmailVerify',
  26. [
  27. 'code' => $code,
  28. 'name' => config('v2board.app_name', 'V2Board')
  29. ],
  30. function ($message) use($email, $subject) {
  31. $message->to($email)->subject($subject);
  32. }
  33. );
  34. if (count(Mail::failures()) >= 1) {
  35. // 发送失败
  36. abort(500, '发送失败');
  37. }
  38. Redis::set($redisKey, $code);
  39. Redis::expire($redisKey, 600);
  40. return response([
  41. 'data' => true
  42. ]);
  43. }
  44. }