php模拟登录
平常我们都会有手机号等录各大网站 这里是用了一个模拟验证码发送的方法
将手机号传入 因为我们需要防止短时间重复发送刷短信 使用php的缓存方法 将数据缓存 用户验证一分钟 然后一分钟没有发送过一次的话 将随机数去缓存
$phone = input('phone');
if (empty($phone)) {
return getJson(500, '请输入11位手机号');
}
$sendTime = cache('code_time_' . $phone);
if (time() - $sendTime < 60) {
return getJson(500, '时间太短,请等一分钟');
}
$rand = mt_rand(1000, 9999);
cache('code_' . $phone, $rand);
cache('code_time_' . $phone, time());
return getJson(200, '发送成功', $rand);
然后在登录的时候直接去取验证码
$arr = input();
$data = \app\api\model\User::where('tel', $arr['phone'])->find();
if (!$data) {
return getJson(500, '次手机号未注册');
}
$code = cache('code_' . $arr['phone']);
if ($code != $arr['code']) {
return getJson(500, '验证码错误');
}
$token = Token::createToken($data['id']);
$data['token'] = $token;
session('user',$data);
return getJson(200, '登录成功', $data);
|