CommController.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. 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 (Cache::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. 'url' => config('v2board.app_url')
  38. ],
  39. function ($message) use($email, $subject) {
  40. $message->to($email)->subject($subject);
  41. }
  42. );
  43. if (count(Mail::failures()) >= 1) {
  44. // 发送失败
  45. abort(500, '发送失败');
  46. }
  47. Cache::put($redisKey, $code);
  48. Redis::expire($redisKey, 600);
  49. return response([
  50. 'data' => true
  51. ]);
  52. }
  53. }