Laravel8 小程序手机号获取验证码登录

关于小程序的登录,那指定受不了JWT,大家要记得在框架中装好JWT去配置

下面就直接上代码

控制器:

<?php

namespace App\Http\Controllers\api;

use App\Http\Controllers\Controller;
use App\Models\Fillable;
use App\Models\User;
use App\Service\SendCode;
use App\Service\Token;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;

class LoginController extends Controller
{
    protected $param;
    public function __construct(Request $request)
    {
        $this->param = $request;
    }

    /**
     * 发送手机验证码
     */
    public function sendCode()
    {
        $phone = $this->param['phone'];
        //验证
        if(!$phone || empty($phone)){
            return ['code'=>4000,'msg'=>'手机号不能为空','data'=>''];
         }

        //判断手机号格式
       $pregRes = preg_match_all('/^1[358]\d{9}$/',$phone);

        if(!$pregRes){
            return ['code'=>4000,'msg'=>'手机号格式不正确','data'=>''];
        }

        //判断该手机号是否为白名单
       $fillableId = Fillable::where('phone',$phone)->first();

        if(empty($fillableId)){
            return ['code'=>4000,'msg'=>'手机号无法登录','data'=>''];
        }

        //获取缓存
        $time = date('Y-m-d',cache()->get($phone.'_time'));
        $count = cache()->get($phone.'_count') ? : 0;

        //判断每天发送次数
        if($count>5){
            return ['code'=>4000,'msg'=>'发送已达上限','data'=>''];
        }
        //当天的时间
        $newDay = date('Y-m-d',time());
        if($newDay>$time){
            $count = 1;
        }else{
            $count++;
        }

        /
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悄悄顽皮的猴头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值