LoginController.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Helpers\Jwt;
  4. use App\Http\Validator\MemberValidator;
  5. use App\Services\Api\MemberService;
  6. use App\Services\ConfigService;
  7. use App\Services\EmailService;
  8. use App\Services\RedisService;
  9. use App\Services\SmsService;
  10. /**
  11. * 授权登录控制器基类
  12. * Class LoginController
  13. * @package App\Http\Controllers
  14. */
  15. class LoginController extends webApp
  16. {
  17. /**
  18. * 用户登录
  19. * @return array
  20. */
  21. public function login()
  22. {
  23. $params = request()->all();
  24. $account = isset($params['account']) ? $params['account'] : '';
  25. $type = isset($params['type']) && $params['type'] ? $params['type'] : 1;
  26. if (empty($account)) {
  27. return message("210{$type}", false);
  28. }
  29. if (!in_array($type, [1, 2, 3])) {
  30. return message("登录类型暂不支持", false);
  31. }
  32. // 授权
  33. if ($res = MemberService::make()->login($params)) {
  34. return showJson('登录成功', true, $res);
  35. } else {
  36. return showJson(MemberService::make()->getError(), false);
  37. }
  38. }
  39. /**
  40. * 邀请注册账号
  41. * @return array
  42. */
  43. public function register()
  44. {
  45. $params = request()->all();
  46. $account = isset($params['account']) ? $params['account'] : '';
  47. $incode = isset($params['incode']) ? $params['incode'] : '';
  48. $type = isset($params['type']) && $params['type'] ? $params['type'] : 1;
  49. if (empty($account)) {
  50. return message("210{$type}", false);
  51. }
  52. if(empty($incode)){
  53. return message("请填写邀请码", false);
  54. }
  55. if (!in_array($type, [1, 2, 3])) {
  56. return message("账号类型暂不支持", false);
  57. }
  58. // 授权
  59. if ($res = MemberService::make()->register($params)) {
  60. return showJson('注册成功,请下载APP后登录使用', true, $res);
  61. } else {
  62. return showJson(MemberService::make()->getError(), false);
  63. }
  64. }
  65. /**
  66. * 修改账号信息
  67. * @param MemberValidator $validator
  68. * @return array
  69. */
  70. public function forget(MemberValidator $validator)
  71. {
  72. $params = request()->all();
  73. $params = $validator->check($params, 'modify_password');
  74. if (!is_array($params)) {
  75. return showJson($params, false);
  76. }
  77. if(!MemberService::make()->forget($params)){
  78. $error = MemberService::make()->getError();
  79. return showJson($error,false,'',$error==1040?405:0);
  80. }else{
  81. return showJson(MemberService::make()->getError(),true);
  82. }
  83. }
  84. /**
  85. * 发送短信验证码
  86. * @return array
  87. */
  88. public function smsSend(MemberValidator $validator)
  89. {
  90. $params = request()->all();
  91. $params = $validator->check($params, 'sms');
  92. $appSources = isset($params['app_sources']) ? $params['app_sources'] : '';
  93. if (!is_array($params)) {
  94. return showJson($params, false);
  95. }
  96. // 发送验证码处理
  97. $mobile = isset($params['account']) ? $params['account'] : '';
  98. $scene = isset($params['scene']) ? $params['scene'] : '';
  99. switch ($scene) {
  100. case 'reg':
  101. if (MemberService::make()->checkExists('mobile', $mobile)) {
  102. return showJson(1035, false,'', 406);
  103. }
  104. break;
  105. case 'modify_mobile':
  106. if (MemberService::make()->checkExists('mobile', $mobile)) {
  107. return showJson(1035, false,'', 406);
  108. }
  109. break;
  110. case 'reset_password':
  111. }
  112. if (!SmsService::make()->send($mobile, $scene)) {
  113. return showJson(SmsService::make()->getError(), false);
  114. }
  115. return showJson(1011, true);
  116. }
  117. /**
  118. * 发送邮箱验证码
  119. * @return array
  120. */
  121. public function emailSend(MemberValidator $validator)
  122. {
  123. $params = request()->all();
  124. $params = $validator->check($params, 'email');
  125. $appSources = isset($params['app_sources']) ? $params['app_sources'] : '';
  126. if (!is_array($params)) {
  127. return showJson($params, false);
  128. }
  129. // 发送验证码处理
  130. $email = isset($params['account']) ? $params['account'] : '';
  131. $scene = isset($params['scene']) ? $params['scene'] : '';
  132. switch ($scene) {
  133. case 'reg':
  134. if (MemberService::make()->checkExists('email', $email)) {
  135. return showJson(2009, false, ['app_url' => ConfigService::make()->getConfigByCode("app_{$appSources}_url"),], 406);
  136. }
  137. break;
  138. case 'modify_email':
  139. if (MemberService::make()->checkExists('email', $email)) {
  140. return showJson(2009, false, ['app_url' => ConfigService::make()->getConfigByCode("app_{$appSources}_url"),], 406);
  141. }
  142. break;
  143. case 'reset_password':
  144. }
  145. if (!EmailService::make()->send($email, $scene)) {
  146. return showJson(EmailService::make()->getError(), false);
  147. }
  148. return showJson(2020, true);
  149. }
  150. }