登录处理
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'=>''];
}
}