laravel8+登录

139 阅读1分钟

登录处理

 public function login (Request $request)
    {
        $post = $this->validate ($request, [
            'username'=>'required',
            'password'=>'required'
        ],[
            'username.required'=>'不写账号?说是不是商业间谍',
            'password.required'=>'密码都能不写?“喂 妖妖灵么 这里有间谍”'
        ]);
        $loginRes = auth ()->attempt ($post);
        if ($loginRes){
            return redirect (route ('admin.index'));
        }
        return redirect (route ('admin.login'))->withErrors (['error'=>'登陆失败']);
    }

验证码

引入
use Carbon\Carbon;
use Gregwar\Captcha\CaptchaBuilder;
use Gregwar\Captcha\PhraseBuilder;
public function code ()
    {
        $phrase = new PhraseBuilder;
        // 设置验证码位数
        $code = $phrase->build(4);
        // 生成验证码图片的Builder对象,配置相应属性
        $builder = new CaptchaBuilder($code, $phrase);
        // 设置背景颜色25,25,112
        $builder->setBackgroundColor(34, 0, 45);
        // 设置倾斜角度
        $builder->setMaxAngle(25);
        // 设置验证码后面最大行数
        $builder->setMaxBehindLines(10);
        // 设置验证码前面最大行数
        $builder->setMaxFrontLines(10);
        // 设置验证码颜色
        $builder->setTextColor(230, 81, 175);
        // 可以设置图片宽高及字体
        $builder->build($width = 130, $height = 40, $font = null);
        // 获取验证码的内容
        $phrase = $builder->getPhrase();

        // 把内容存入 cache,10分钟后过期
        $client_id = md5( rand(1,1000).time());
        \Cache::put($client_id, $phrase, Carbon::now()->addMinutes(10));

        // 组装接口数据
        $data = [
            'client' => $client_id,
            'captcha' => $builder->inline(),
        ];
        return $data;

    }

验证码


    //登录方法
    public function loginCode(Request $request)
    {
        //接收所有参数
        $params = $request->all();
        //取出验证码是否一致
        $captcha = \Cache::get($params['client']);
//        dump ($params,strtolower($captcha));die;
        $code = strtolower($params['code']);
        $captcha = strtolower($captcha);
        if ($code === $captcha ){
            return ['code'=>200,'msg'=>'验证码正确','data'=>''];
        }

    }