diff --git a/plugin/piadmin/app/controller/v1/UserLoginController.php b/plugin/piadmin/app/controller/v1/UserLoginController.php index e584a05..71d1125 100644 --- a/plugin/piadmin/app/controller/v1/UserLoginController.php +++ b/plugin/piadmin/app/controller/v1/UserLoginController.php @@ -35,11 +35,16 @@ class UserLoginController extends BaseController /** * 手机号登录 * @param Request $request - * @return void */ public function mobileLogin(Request $request) { - + $params = $request->only([ + 'phone', + 'code' + ]); + // 用户登录 + $res = $this->service->mobileLogin($params); + return success($res); } diff --git a/plugin/piadmin/app/route/v1/route.php b/plugin/piadmin/app/route/v1/route.php index bbd2742..816e15a 100644 --- a/plugin/piadmin/app/route/v1/route.php +++ b/plugin/piadmin/app/route/v1/route.php @@ -25,6 +25,8 @@ Route::group('/piadmin/v1', function () { Route::group('/user', function () { //账号密码登录 Route::post('/login', [UserLoginController::class, 'login'])->setParams(['perm' => ['userLogin']]); + //手机验证码登录 + Route::post('/mobileLogin', [UserLoginController::class, 'mobileLogin'])->setParams(['perm' => ['userMobileLogin']]); //发送短信验证码 Route::post('/sendMsg', [UserLoginController::class, 'sendMsg'])->setParams(['perm' => ['userSendMsg']]); }); diff --git a/plugin/piadmin/app/service/SystemAdminService.php b/plugin/piadmin/app/service/SystemAdminService.php index d6d43c2..38e91ca 100644 --- a/plugin/piadmin/app/service/SystemAdminService.php +++ b/plugin/piadmin/app/service/SystemAdminService.php @@ -65,7 +65,6 @@ class SystemAdminService extends BaseService { // 检查账号 $accountExist = $this->dao->be(['account' => $params['account']]); - var_dump($params['account']); if ($accountExist) { throw new ApiException(4040013); } diff --git a/plugin/piadmin/app/service/UserService.php b/plugin/piadmin/app/service/UserService.php index c4052b7..c1f4404 100644 --- a/plugin/piadmin/app/service/UserService.php +++ b/plugin/piadmin/app/service/UserService.php @@ -6,6 +6,7 @@ use plugin\piadmin\app\base\BaseService; use plugin\piadmin\app\dao\UserDao; use plugin\piadmin\app\exception\ApiException; use plugin\piadmin\app\utils\CacheUtils; +use plugin\piadmin\app\utils\Captcha; use plugin\piadmin\app\utils\JwtUtils; class UserService extends BaseService @@ -33,6 +34,25 @@ class UserService extends BaseService return $tokenInfo; } + public function mobileLogin($params) + { + $user = $this->dao->getModel()->where(function ($query) use ($params){ + $query->where('phone', '=', $params['phone']); + })->find(); + //验证码验证 + if(env('APP_DEBUG') != true){ + $captcha = new Captcha(); + $res = $captcha->verify($params['phone'],$params['code'],"login"); + if($res['code'] != 200){ + throw new ApiException($res['msg']); + } + } + $tokenInfo = $this->commonLogin($user, $params); + $tokenInfo['user'] = $user->toArray(); + $tokenInfo['expire_time'] = $tokenInfo['expire'] + time(); + return $tokenInfo; + } + // ============================================================ 私有方法 =============================================== diff --git a/plugin/piadmin/app/utils/Captcha.php b/plugin/piadmin/app/utils/Captcha.php index 5324c22..3a297c4 100644 --- a/plugin/piadmin/app/utils/Captcha.php +++ b/plugin/piadmin/app/utils/Captcha.php @@ -48,6 +48,26 @@ class Captcha } /** + * 验证码验证 + * + * @return + */ + public function verify($phone,$user_string,$type) + { + $code_cache = CacheUtils::get($phone.'_'.$type); + if(!$code_cache){ + throw new ApiException("验证码已过期"); + } + if(!hash_equals("$code_cache", "$user_string")){ + throw new ApiException("验证码错误"); + } + return [ + 'code' => 200, + 'msg' => '验证通过' + ]; + } + + /** * 图形验证码 * @return array */