CommController.php 1.7 KB

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