【bug】短信驗證碼功能bug,新註冊短信用戶任意填寫驗證碼都能經過註冊的嚴重bugphp
以前有處理驗證bug是針對的郵箱註冊,目前發現短信註冊存在bug,已經手機註冊的用戶短信登陸無bug,新手機用戶註冊有bug。web
修改內容:
修改文件/songshu-video-back/application/api/controller/User.phpapi
將此段代碼 放在
此段代碼紅色位置部分session
最終效果:app
} $token = pass($username . time() . getRandStr()) . $username; Db("user")->where(['id' => $user['id']])->update(["token" => $token]); session("user", $user); unset($user['password']); return success("登陸成功", $user); break; case "phone"://手機驗證碼登陸 $phone = input("phone/i");//手機號 $user = Db("user")->where(['phone' => $phone])->find(); $code = input("code/i"); //判斷短信驗證碼是否正確 if (!Sms::verifySms($phone, $code)) { u_log("手機用戶" . $phone . "登陸失敗", 'error'); return error("驗證碼錯誤"); } if (!$user) { $have_invite_code = input('have_invite_code/i'); $parent = NULL; if ($have_invite_code == 0) { return error("need_invite"); } else { $invite_code = input("invite_code/i"); if (strlen($invite_code) > 0) { $parent = Db('user')->where('invit_code', $invite_code)->where('disable', 0)->find(); if (!$parent) { return error('邀請碼不正確'); } } }