fail(Member::getErrorInfo('用户名错误,请重新输入')); } //生成令牌 $token = Member::createToken($meberInfo, 'xxlm'); if(empty($token)) { return app('json')->fail(Member::getErrorInfo()); } Member::where('uid',$meberInfo['uid'])->save(['lasttime'=>time()]); $data['uid'] = $meberInfo['uid']; $data['ip'] = $request->ip(); $data['time'] = time(); Db::name("login_record")->insert($data); return app('json')->success([ 'token' => $token, 'user_info' => [ 'mobile' => $meberInfo->getData('mobile'), 'name' => $meberInfo->getData('name'), 'avatar' => $meberInfo->getData('avatar'), 'money' => $meberInfo->getData('money'), 'openid' => $meberInfo->getData('openid') ], ]); } /** * 获取验证码 * @param Request $request */ public function yzm(Request $request) { [$mobile,$time,$token] = UtilService::getMore([ ['mobile','','empty','请输入手机号码'], ['time',''], ['token',''] ],$request,true); $outStr = @crypto_decrypt(base64_decode($token), 'xxlm'); if($mobile != $outStr) { return app('json')->fail("获取验证码失败!"); } $lastTime = 120; $time = time(); $smsTime = (new SmsYzm)->where('mobile',$mobile) ->where("action","yzm") ->order("time desc") ->value("time"); //验证码 if (!empty($smsTime) && abs($time - $smsTime) < $lastTime) { $data['status'] = 2; $data['time'] = $time - $smsTime; return app('json')->success($data); } //发送验证码 $code = randString(6, true); $send = (new Sms)->SmsCode($mobile, "718562", array("1" => $code,"2"=>"30")); if ($send['status'] == 1) { $savedata['mobile'] = $mobile; $savedata['code'] = $code; $savedata['action'] = 'yzm'; $savedata['time'] = time(); (new SmsYzm)->insert($savedata); $data['status'] = 1; } else { $data = $send; } if($data['status'] == 1) { return app('json')->success("发送成功", ['status'=>1,'time'=>$lastTime]); } else { return app('json')->fail($data['error']); } } /** * 注册第一步 * @param Request $request */ public function reg1(Request $request) { [$mobile,$yzm] = UtilService::getMore([ ['mobile','','empty','请输入手机号码'], ['yzm',''] ],$request,true); //判断验证码 $bool = (new SmsYzm)->VerCode($mobile,$yzm,'yzm'); if(!$bool) { return app('json')->fail(SmsYzm::getErrorInfo("验证码错误")); } //判断是否被注册了 $count = (new Member)->where('mobile',$mobile)->count(); if($count > 0) { return app('json')->fail("用户已经被注册,请勿重复操作!"); } //生成MD5 $param = ['mobile'=>$mobile,'time'=>time()]; $token =base64_encode( @crypto_encrypt(json_encode($param), 'xxlm')); return app('json')->success([ 'token' => $token ]); } /** * 注册第二步 * @param Request $request */ public function reg2(Request $request) { $post = UtilService::getMore([ ['mobile',''], ['wechat',''], ['shopname',''], ['platform',''], ['password','','empty','请输入正确的密码'], ['tjUid',''] ],$request); $time = time(); /*$tokenData = @json_decode(@crypto_decrypt(base64_decode($post['token']), 'xxlm'),true); //注册token大于30分钟或者超过30分钟 if(empty($tokenData) || ($time - $tokenData['time']) > 30 * 60){ return app('json')->fail("验证过期,请重新注册"); }*/ //判断是否被注册了 $count = (new Member)->where('mobile',$post['mobile'])->count(); if($count > 0) { return app('json')->fail("用户已经被注册!"); } //推荐码 if(!empty($post['tjUid'])){ $tjuid = crypto_decrypt(base64_decode($post['tjUid']),'xxlm'); $save['i_uid'] = $tjuid; } $save['mobile'] = $post['mobile']; $save['wechat'] = $post['wechat']; $save['shopname'] = $post['shopname']; $save['platform'] = $post['platform']; $save['password'] = md5($post['password']); $save['regip'] = $request->ip(); $save['regtime'] = $time; $save['lasttime'] = $time; $save['status'] = 1; $uid = (new Member)->insertGetId($save); $memberInfo = Member::where('uid',$uid)->find(); //生成令牌 $token = Member::createToken($memberInfo, 'xxlm'); return app('json')->success([ 'token' => $token, 'user_info' => [ 'mobile' => $memberInfo->getData('mobile'), 'wechat' => $memberInfo->getData('wechat'), 'money' => $memberInfo->getData('money') ], ]); } /** * 忘记密码验证码 * @param Request $request */ public function forgetYzm(Request $request){ [$mobile,$time,$token] = UtilService::getMore([ ['mobile','','empty','请输入手机号码'], ['time',''], ['token',''] ],$request,true); $secret_key = $request->site['secret_key']; $outStr = @crypto_decrypt(base64_decode($token), $secret_key); if($mobile != $outStr) { return app('json')->fail("获取验证码失败!"); } $count = (new Member)->where('mobile',$mobile)->count(); if($count <= 0) { return app('json')->fail("账号未注册!"); } $lastTime = 120; $time = time(); $smsTime = (new SmsYzm)->where('mobile',$mobile) ->where("action","forget_yzm") ->order("time desc") ->value("time"); //验证码 if (!empty($smsTime) && abs($time - $smsTime) < $lastTime) { $data['status'] = 2; $data['time'] = $time - $smsTime; return app('json')->success($data); } //发送验证码 $code = randString(6, true); $send = (new Sms)->SmsCode($mobile, "718570", array("1" => $code)); if ($send['status'] == 1) { $savedata['mobile'] = $mobile; $savedata['code'] = $code; $savedata['action'] = 'forget_yzm'; $savedata['time'] = time(); (new SmsYzm)->insert($savedata); $data['status'] = 1; } else { $data = $send; } if($data['status'] == 1) { return app('json')->success("发送成功", ['status'=>1,'time'=>$lastTime]); } else { return app('json')->fail($data['error']); } } /** * 重置密码第一步 * @param Request $request */ public function forget1(Request $request) { [$mobile,$yzm] = UtilService::getMore([ ['mobile','','empty','请输入手机号码'], ['yzm',''] ],$request,true); //判断验证码 $bool = (new SmsYzm)->VerCode($mobile,$yzm,'forget_yzm'); if(!$bool) { return app('json')->fail(SmsYzm::getErrorInfo("验证码错误")); } //判断是否被注册了 $count = (new Member)->where('mobile',$mobile)->count(); if($count <= 0) { return app('json')->fail("找不到账号!"); } //生成MD5 $param = ['mobile'=>$mobile,'time'=>time()]; $token =base64_encode( @crypto_encrypt(json_encode($param), 'xxlm')); return app('json')->success([ 'token' => $token ]); } /** * 重置密码第二步 * @param Request $request */ public function forget2(Request $request) { $post = UtilService::getMore([ ['token','','empty','参数错误'], ['password','','empty','请输入正确的密码'] ],$request); $time = time(); $secret_key = $request->site['secret_key']; $tokenData = @json_decode(@crypto_decrypt(base64_decode($post['token']), $secret_key),true); //注册token大于30分钟或者超过30分钟 if(empty($tokenData) || ($time - $tokenData['time']) > 30 * 60){ return app('json')->fail("操作已过期,返回重新操作"); } //判断是否被注册了 $data = (new Member)->where('mobile',$tokenData['mobile'])->find(); if(empty($data)) { return app('json')->fail("找不到账号!"); } $save['password'] = md5($post['password']); (new Member)->where('uid',$data['uid'])->save($save); return app('json')->success("找回成功!"); } }