CommController.php 1.7 KB

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