短信登录

public function note(Request $request)
{
    $all = $request->all();
    $statusStr = array(
        "0" => "短信发送成功",
        "-1" => "参数不全",
        "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",
        "30" => "密码错误",
        "40" => "账号不存在",
        "41" => "余额不足",
        "42" => "帐户已过期",
        "43" => "IP地址限制",
        "50" => "内容含有敏感词"
    );
    $send = rand(1000, 9999);
    $smsapi = "http://api.smsbao.com/";
    $user = "598516204"; //短信平台帐号
    $pass = md5("w05216034."); //短信平台密码
    $content = "您收到的短信为" . $send;//要发送的短信内容
    $phone = $all['phone'];//要发送短信的手机号码
    $sendurl = $smsapi . "sms?u=" . $user . "&p=" . $pass . "&m=" . $phone . "&c=" . urlencode($content);
    $result = file_get_contents($sendurl);
    Redis::set('code', $send);
    return response()->json(['code' => 200, 'msg' => $statusStr[$result], 'data' => $send])->setEncodingOptions(JSON_UNESCAPED_UNICODE);
}

public function login(Request $request)
{
    //接收用户输入的手机号
    $phone = $request->all('phone');
    //获取用户输入的验证码
    $userCode = $request->all('yzm');
    //缓存记录验证码
    $cacheCode = Redis::get('code');

    $result = User::where('phone', $phone)->first();
    if (!$result) {
        //判断用户输入的手机号是否注册过
        return response()->json(['code' => 889, 'msg' => '手机号不存在', 'data' => []])->setEncodingOptions(JSON_UNESCAPED_UNICODE);
    }
    if ($userCode != $cacheCode) {
        //判断用户输入的验证码跟缓存中的验证码是否一致
        return response()->json(['code' => 889, 'msg' => '验证码错误', 'data' => []])->setEncodingOptions(JSON_UNESCAPED_UNICODE);
    }
    return response()->json(['code' => 200, 'msg' => '登陆成功', 'data' => []])->setEncodingOptions(JSON_UNESCAPED_UNICODE);
}
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

手机号码最好也缓存一下,然后做一下判断感觉更稳妥一些!~ :joy:

if ($userPhoneCode != $cachePhoneCode) {
        //...
}
1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!