密码为空的问题
来源:7-14 前端用户登录逻辑开发(二)

残破的蛋丨蛋
2020-07-18
我这里的密码为空,为什么没有像老师的那样报错呢?直接是登录成功了
我的数据库是设计是这样的:
写回答
2回答
-
残破的蛋丨蛋
提问者
2020-07-18
前端登录的控制器代码:
class Login extends BaseController { /** * @return object */ public function index(): object { $phoneNumber = input("param.phone_number", "", "trim"); $code = $this->request->param("code", "0", "trim"); $type = request()->param("type", "0", "trim"); // 前端用户传递的参数 $data = [ 'phone_number' => $phoneNumber, 'code' => $code, 'type' => $type ]; $validate = new User(); if (!$validate->scene('login')->check($data)) { return show(config('status.error'), $validate->getError()); } $result = (new \app\common\business\User)->login($data); if ($result) { return show(config('status.success'), "登录成功", $result); } return show(config('status.error'), "登录失败"); } }
前端登录的Business代码:
public function login($data) { $redisCode = cache(config('redis.code_pre').$data['phone_number']); if (empty($redisCode) || $redisCode != $data['code']) { // throw new \think\Exception("验证码不正确".$redisCode, config('status.code_error')); } // 根据手机号查询相关的用户信息数据 $user = $this->userObj->getUserByPhoneNumber($data['phone_number']); if (!$user) { // 如果用户不存在,就注册新用户,这里用户名默认随机,后期可以让用户在个人中心修改 $username = substr(md5(time()), 1, 15); $userData = [ "username" => "TP6Mall_{$username}", "phone_number" => $data["phone_number"], "type" => $data['type'], "status" => config("status.mysql.table_normal") ]; $this->userObj->save($userData); // 用户id $userId = $this->userObj->id; } else { $userId = $user->id; $username = $user->username; // 如果用户已经存在,则更新用户数据 $userData = [ 'update_time' => time(), 'operate_user' => $username ]; $this->userObj->updateById($userId, $userData); } // 获取token $token = TokenStr::getLoginToken($user->phone_number); $redisData = [ "id" => $userId, "username" => $username ]; $res = cache(config('redis.token_pre').$token, $redisData, Time::userLoginTimeExpiresTime($data['type'])); return $res ? ["token" => $token, "username" => $username] : false; }
这是Model层代码:
public function getUserByPhoneNumber(int $phoneNumber) { if (!$phoneNumber) { return false; } return $this->where('phone_number', '=', $phoneNumber)->find(); }
我这里密码为空的时候怎么没有弹出来老师的那个报错呢。
00 -
keryz
2020-07-18
同学,你好,代码可以发出来看下。
------------- singwa 助教。
012020-07-18
相似问题