75142913在线留言
【Laravel实战】Ajax验证captcha 验证码_PHP技术_网络人

【Laravel实战】Ajax验证captcha 验证码

Kwok 发表于:2023-04-23 17:23:50 点击:255 评论: 0

在 https://www.55mx.com/post/219 里有一个Ajax验证方案,但最近captcha升级后,就无法使用了,这里提供另一个验证思路,比前一个的方法更科学有效!

我们通过查看Session 得到下面的代码:

dd(session()->get('captcha')); //取到captcha(新版已加密)

打印session结果:

{
"sensitive":false,
"key":"$2y$10$z.JCCxn4vGa4ugqn1srGReL9UOkx5MBVeeLUM1klF2nrdg8b3vk/u"
}

发现key的内容是通过了PHP的加密处理的。所以这里我们可以通过Laravel的密码验证来处理:

//Ajax验证码
Route::post('captcha', function () {
    $result = ['status' => 'error', 'msg' => ''];
    $captcha = session()->get('captcha'); //取到captcha(新版已加密)
    //Hash校验
    if (IlluminateSupportFacadesHash::check(request()->captcha, $captcha['key'])) {
        $result['status'] = 'success';
    } else {
        $result['msg'] = '验证码错误';
    }
    return response()->json($result);
})->name('captcha');

不需要再重新将验证码写入到session。因为我们只读了一次手工的验证通过。

除非注明,网络人的文章均为原创,转载请以链接形式标明本文地址:https://www.55mx.com/post/241
标签:captcha
0
感谢打赏!

《【Laravel实战】Ajax验证captcha 验证码》的网友评论(0)

本站推荐阅读

热门点击文章