Laravel 8 登陆验证码失效 mews/captcha

1. 运行环境#

1). 当前使用的 Laravel 版本?#

Laravel Framework 8.83.25

2). 当前使用的 php/php-fpm 版本?#

PHP 版本:

PHP 7.3.33 (cli) (built: Sep 29 2022 06:58:31) ( NTS )

3). 当前系统#

macOS 10.15.7

2. 问题描述?#

新建 Laravel 程序后,新增登陆验证
composer require laravel/ui
php artisan ui vue –auth
php artisan migrate

创建了登陆页面后增加验证码过程中发现程序只能起到验证 captcha 是否为空 (required) 的作用,至于验证码正确与否无法判断直接登陆成功.

配置文件方面:

config/app.php:
providers:

Laravel 登陆验证码失效 mews/captcha

aliases:

Laravel 登陆验证码失效 mews/captcha

前端显示验证码以及输入框

Laravel 登陆验证码失效 mews/captcha

Laravel 登陆验证码失效 mews/captcha

后台处理验证:

Laravel 登陆验证码失效 mews/captcha

路由文件:

Laravel 登陆验证码失效 mews/captcha

3. 您期望得到的结果?#

Laravel 登陆验证码失效 mews/captcha

4. 您实际得到的结果?#

只要验证码不是为空,随便输入都能登陆成功

Laravel 登陆验证码失效 mews/captcha

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案

.env 加上配置

验证码

CAPTCHA_DISABLE=false

2年前 评论
TTTT4 (楼主) 2年前
gyp719 (作者) 2年前
TTTT4 (楼主) 2年前
gyp719 (作者) 2年前
讨论数量: 16

验证的地方只保留 required,去除 captcha

2年前 评论
TTTT4 (楼主) 2年前

验证那里的条件使用数组就可以了

protected function validateLogin(Request $request){

        $this->validate($request, [
            $this->username() => ['required'],
            'password' => ['required'],
            'captcha' => ['required', 'captcha'],
        ],[
            'captcha.required' => trans('validation.required'),
            'captcha.captcha' => trans('validation.captcha'),
        ]);
    }
2年前 评论
TTTT4 (楼主) 2年前
zstartw (作者) 2年前
TTTT4 (楼主) 2年前
jcc123

在验证码的方法里打个断点

2年前 评论
TTTT4 (楼主) 2年前

.env 加上配置

验证码

CAPTCHA_DISABLE=false

2年前 评论
TTTT4 (楼主) 2年前
gyp719 (作者) 2年前
TTTT4 (楼主) 2年前
gyp719 (作者) 2年前

我是无论输什么字符,即使输对了验证码,还是提示我错误,怎么解,有知道的没~

2年前 评论
gyp719 2年前

我的 laravel 版本:Laravel Framework 8.83.23
验证码包:”mews/captcha”: “^3.2”
找到验证码包源码 helpers.php 文件(路径:vendor/mews/captcha/src),里面已定义好验证码全局验证方法:

file

根据你的需要,如果接口传的是验证码明码暗码对,那就用:

[
 'captcha' => 'required|captcha_api_check:' . $this->request->get('key'),
]

如果只是单纯的验证明码:

[
 'captcha' => 'required|captcha_check',
]

无需修改.env 配置, 题主可自行测试。

2年前 评论