使用Geetest Laravel 5 集成开发包 一直提示 ‘正在加载验证码’,console提示'/auth/geetest not found' 错误解决方法。

 

安装

在项目地址输入命令

$ composer require germey/geetest

就可以完成该包的安装

配置

注册 ServiceProvider,在 config/app.php 的 providers 中添加

Germey\Geetest\GeetestServiceProvider::class,

在 aliases 中添加

'Geetest' => Germey\Geetest\Geetest::class,

然后执行

$ php artisan vendor:publish

会生成一个配置文件,config/geetest.php 和视图文件views/vendor/geetest

视图文件中你可以自定义配置,比如修改一下验证失败后的alert函数,修改为你想要的提示toast等。

使用

首先把刚才拿到的 ID 和 KEY 配置到 .env 文件中,因为这两个算私密内容,配置到 .env 文件中可以保证安全性。在 .env 中写入如下两行。

GEETEST_ID=0f1097bef7xxxxxx9afdeced970c63e4
GEETEST_KEY=c070f0628xxxxxxe68e138b55c56fb3b

其中 ID 和 KEY 换成你自己的。

然后,在任意的视图里,我们只需要调用

{!! Geetest::render() !!}

就可以得到验证码了。

 

          -以上文档出自  http://laravelacademy.org/post/5291.html

 

  问题出现。。。

 

页面只显示'正在加载验证码',

控制台显示‘'The requested URL /auth/geetest was not found on this server.',

后来发现,是版本更新了,文档没更新。

于是

把config/geetest.php中的

'geetest_url' => '/auth/geetest',

改为

'geetest_url' => 'auth/geetest',

创建提示Not Found的那条路由

Route::get('auth/geetest', 'GetGeetestController@getGeetest');

创建控制器

php artisan make:controller GetGeetestController

在新建控制器中use GeetestCaptcha即可正常使用验证码

<?php

namespace App\Http\Controllers;

use Germey\Geetest\GeetestCaptcha;
use Illuminate\Http\Request;

class GetGeetestController extends Controller
{
    //
    use GeetestCaptcha;
}

 

问题解决!

 

总结:   使用默认路由  制造控制器  use  trait 调用自带方法

 

路径是  vendor/germey/src/GeetestCaptcha.php

 

posted @ 2017-03-31 11:32  jialongfei  阅读(1301)  评论(0编辑  收藏  举报