CommController.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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 config () {
  12. return response([
  13. 'data' => [
  14. 'isEmailVerify' => (int)config('v2board.email_verify', 0) ? 1 : 0,
  15. 'isInviteForce' => (int)config('v2board.invite_force', 0) ? 1 : 0
  16. ]
  17. ]);
  18. }
  19. private function isEmailVerify () {
  20. return response([
  21. 'data' => (int)config('v2board.email_verify', 0) ? 1 : 0
  22. ]);
  23. }
  24. public function sendEmailVerify (CommSendEmailVerify $request) {
  25. $email = $request->input('email');
  26. $redisKey = 'sendEmailVerify:' . $email;
  27. if (Redis::get($redisKey)) {
  28. abort(500, '验证码已发送,请过一会在请求');
  29. }
  30. $code = rand(100000, 999999);
  31. $subject = config('v2board.app_name', 'V2Board') . '邮箱验证码';
  32. Mail::send(
  33. 'mail.sendEmailVerify',
  34. [
  35. 'code' => $code,
  36. 'name' => config('v2board.app_name', 'V2Board')
  37. ],
  38. function ($message) use($email, $subject) {
  39. $message->to($email)->subject($subject);
  40. }
  41. );
  42. if (count(Mail::failures()) >= 1) {
  43. // 发送失败
  44. abort(500, '发送失败');
  45. }
  46. Redis::set($redisKey, $code);
  47. Redis::expire($redisKey, 600);
  48. return response([
  49. 'data' => true
  50. ]);
  51. }
  52. }