1.使用语言包 在resources/lang/ 下的en 复制一份改成 zh_CN
config/app.php
中 locale
设置为 zh_CN
修改zh_CN 里的错误提示改成中文
2.我们通过 Composer 安装 Captcha 扩展包:
composer require mews/captcha
配置:
使用Captcha服务提供者之前还需要在config/app.php
中注册服务提供者:
'providers' => [ // ... Mews\Captcha\CaptchaServiceProvider::class, ]
同时注册下相应门面:
'aliases' => [ // ... 'Captcha' => Mews\Captcha\Facades\Captcha::class, ]
3.在登陆模版加入验证码:
@extends('layouts.app') @section('content') <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-default"> <div class="panel-heading">Login</div> <div class="panel-body"> <form class="form-horizontal" role="form" method="POST" action=""> {{ csrf_field() }} <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}"> <label for="email" class="col-md-4 control-label">E-Mail Address</label> <div class="col-md-6"> <input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}" required autofocus> @if ($errors->has('email')) <span class="help-block"> <strong>{{ $errors->first('email') }}</strong> </span> @endif </div> </div> <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}"> <label for="password" class="col-md-4 control-label">Password</label> <div class="col-md-6"> <input id="password" type="password" class="form-control" name="password" required> @if ($errors->has('password')) <span class="help-block"> <strong>{{ $errors->first('password') }}</strong> </span> @endif </div> </div> <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}"> <div class="col-md-4"></div> <div class="col-md-6"> <img src="{{captcha_src()}}" alt="captcha"> </div> </div> <div class="form-group{{ $errors->has('captcha') ? ' has-error' : '' }}"> <label for="captcha" class="col-md-4 control-label">Verify Code</label> <div class="col-md-6"> <input id="captcha" type="text" class="form-control" name="captcha" required> @if ($errors->has('captcha')) <span class="help-block"> <strong>{{ $errors->first('captcha') }}</strong> </span> @endif </div> </div> <div class="form-group"> <div class="col-md-6 col-md-offset-4"> <div class="checkbox"> <label> <input type="checkbox" name="remember" {{ old('remember') ? 'checked' : '' }}> Remember Me </label> </div> </div> </div> <div class="form-group"> <div class="col-md-8 col-md-offset-4"> <button type="submit" class="btn btn-primary"> Login </button> <a class="btn btn-link" href="{{ route('password.request') }}"> Forgot Your Password? </a> </div> </div> </form> </div> </div> </div> </div> </div> @endsection
Controllers/Auth/LoginController.php 内加入对验证码的的验证, 重构validateLogin方法
<?php namespace App\Http\Controllers\Auth; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Illuminate\Foundation\Auth\AuthenticatesUsers; class LoginController extends Controller { /* |-------------------------------------------------------------------------- | Login Controller |-------------------------------------------------------------------------- | | This controller handles authenticating users for the application and | redirecting them to your home screen. The controller uses a trait | to conveniently provide its functionality to your applications. | */ use AuthenticatesUsers; /** * Where to redirect users after login. * * @var string */ protected $redirectTo = '/home'; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('guest', ['except' => 'logout']); } protected function validateLogin(Request $request) { $this->validate($request, [ $this->username() => 'required|email|max:255', 'password' => 'required|min:6','captcha' => 'required|captcha', ]); } }
对应验证的错误信息:
在中文包下zh_CN\validation.php加入
'captcha' => '验证码不一致',