// +---------------------------------------------------------------------- declare (strict_types = 1); namespace app\api\controller; use app\api\service\passport\Login as LoginService; use app\api\service\passport\Captcha as CaptchaService; use app\api\service\passport\SmsCaptcha as SmsCaptchaService; /** * 用户认证模块 * Class Passport * @package app\api\controller */ class Passport extends Controller { /** * 登录接口 * @return array|\think\response\Json * @throws \app\common\exception\BaseException * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function login() { // 执行登录 $LoginService = new LoginService; if (!$LoginService->login($this->postForm())) { return $this->renderError($LoginService->getError()); } // 用户信息 $userInfo = $LoginService->getUserInfo(); return $this->renderSuccess([ 'userId' => (int)$userInfo['user_id'], 'token' => $LoginService->getToken((int)$userInfo['user_id']) ], '登录成功'); } /** * 图形验证码 * @return array|\think\response\Json */ public function captcha() { $CaptchaService = new CaptchaService; return $this->renderSuccess($CaptchaService->create()); } /** * 发送短信验证码 * @return array|\think\response\Json */ public function sendSmsCaptcha() { $SmsCaptchaService = new SmsCaptchaService; if (!$SmsCaptchaService->sendSmsCaptcha($this->postForm())) { return $this->renderError($SmsCaptchaService->getError()); } return $this->renderSuccess('发送成功,请注意查收'); } }