| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- <?php
- namespace App\Http\Controllers\Api\v1;
- use App\Http\Controllers\Api\webApp;
- use App\Http\Validator\MemberValidator;
- use App\Services\Api\MemberService;
- use App\Services\RedisService;
- /**
- * 授权登录控制器基类
- * Class LoginController
- * @package App\Http\Controllers
- */
- class LoginController extends webApp
- {
- /**
- * 账号登录
- * @return array
- */
- public function login(MemberValidator $validator)
- {
- try {
- $params = request()->all();
- $code = request()->post('code', '');
- $params = $validator->check($params, 'login');
- if (!is_array($params)) {
- return showJson($params, false);
- }
- if (!$result = MemberService::make()->login($code, $params)) {
- return showJson(MemberService::make()->getError(), false);
- }
- return showJson(MemberService::make()->getError(), true, $result);
- }catch (\Exception $exception) {
- $error = ['data' => $exception->getTrace(), 'err' => $exception->getMessage()];
- return showJson(1046, false, $error);
- }
- }
- /**
- * 小程序授权登录
- * @param MemberValidator $validator
- * @return array
- */
- public function mpAuth(MemberValidator $validator)
- {
- $params = request()->all();
- try {
- $params = $validator->check($params, 'mp');
- if (!is_array($params)) {
- return showJson($params, false);
- }
- $code = isset($params['code']) ? $params['code'] : '';
- if ($result = MemberService::make()->mpAuth($code, $params)) {
- return showJson(MemberService::make()->getError(), true, $result);
- }else{
- return showJson(MemberService::make()->getError(), false);
- }
- } catch (\Exception $exception) {
- $error = ['data' => $exception->getTrace(), 'err' => $exception->getMessage()];
- RedisService::set("caches:members:loginError", ['params'=>$params, 'error'=>$error], 600);
- return showJson(1046, false, $error);
- }
- }
- /**
- * 重置密码
- * @param MemberValidator $validator
- * @return array
- */
- public function forget(MemberValidator $validator)
- {
- $params = request()->all();
- $params = $validator->check($params, 'reset_password');
- if (!is_array($params)) {
- return showJson($params, false);
- }
- if(!MemberService::make()->forget($params)){
- $error = MemberService::make()->getError();
- return showJson($error,false,'',$error==1040?405:0);
- }else{
- return showJson(MemberService::make()->getError(),true);
- }
- }
- /**
- * 发送短信验证码
- * @return array
- */
- public function smsSend(MemberValidator $validator)
- {
- $params = request()->all();
- $params = $validator->check($params, 'sms');
- if (!is_array($params)) {
- return showJson($params, false);
- }
- // 发送验证码处理
- $mobile = isset($params['mobile']) ? $params['mobile'] : '';
- $scene = isset($params['scene']) ? $params['scene'] : '';
- switch ($scene) {
- case 'register':
- if (MemberService::make()->checkExists('mobile', $mobile)) {
- return showJson(1040, false);
- }
- break;
- case 'deposit': // 退保
- case 'reset_password': // 忘记密码
- case 'login':
- if (!MemberService::make()->checkExists('mobile',$mobile)) {
- return showJson(2001, false);
- }
- break;
- }
- if (!SmsService::make()->send($mobile, $scene)) {
- return showJson(SmsService::make()->getError(), false);
- }
- return showJson(1011, true);
- }
- /**
- * 退出登录
- * @return array
- */
- public function logout()
- {
- RedisService::clear("auths:info:".$this->userId);
- return showJson(1003, true);
- }
- }
|