最新消息:什么都不会,还什么都不想学,什么都不想干,我八成是废了!

【实战】YII2引入极验验证

网站开发 TrojanSun 356浏览 0评论

我这里为了YII2使用方便,也为了后续能继续使用这个项目,所以操作如下。
如果想在YII2中引入极验验证,其实很简单,从官方的文档我们可以看出,他需要如下几个方法

这几个方法在官方提供的DEMO中有很详细的说明,我就不做一一介绍了,下面说一下如何在YII2中使用极验验证吧!
首先我们要把极验验证提供的SDK中的class文件放到我们的项目当中
首先要在vendor/yiisoft路径下面创建一个新的文件夹,用来存放极验验证的class类
我们创建文件夹名为vendor/yiisoft/yii2-geetest
然后把class类copy到这么目录下修改为Geetestlib,当然了你修改为其他的也无所谓。
然后我们打开这个类,在头部添加命名空间。

OK,这样我们就引入了这个class类到这个项目,因为我们需要在其他的控制器里使用这个类,所以我们还要加载一下。
在文件vendor/yiisoft/extensions.php中添加如下内容

然后我们就可以在controller里面进行调用了。
比如说上一篇我们提到的登陆页面
我们可以在控制器中添加如下代码,然后把json的数据传到view层,然后view层直接解析调用就可以了。

这里需要说明一下,我这里的user_id用了随机id,所以每次都需要验证,而且我的data里面也没有添加IP,根据我从官方网站了解的内容来看,这个user_id和ip主要是为了避免多次登录验证的,因为我这里都需要验证,所以user_id我就随机了。
然后我们在view层首先要引入gt.js的代码,然后添加如下的js脚本内容

这里极验验证所需要的内容,我都通过controller传过来了,其实这里你也可以通过ajax去调用,也可以通过地址去接受json解析。
这里需要注册的地方是,如果你用我这样的方法,要注意在js里面输出php内容的时候,要添加引号,否则js不会识别那是字符串,会导致脚本加载失败。
然后我们copy极验验证demo里面的一段HTML代码

这段代码主要是用来展示验证码,以及一些提示的,你可以根据自己的需求进行美化,比如YII2的提示的样式等。
OK,现在我们的极验证就可以正常加载了,其实现在就可以用了,但是极验验证为我们提供了一个二次验证,为了更加安全,我们在后台去接受一下post过来的数据,用这些数据进行二次验证。

关于user_id就不用多说了,下面有两个判断,判断一下就OK了,如果$result等于真的话,那么我们就可以调用我们的登陆方法了。
然后我们通过实际操作去感受一下




好了,现在我们已经验证成功了,直接登陆就可以了。

转载请注明:TrojanSun » 【实战】YII2引入极验验证

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址