怎么解決thinkphp6驗證碼驗證失???

首先使用Composer安裝think-captcha擴展包:

成都創(chuàng)新互聯(lián)公司主營伊吾網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,伊吾h5小程序開發(fā)搭建,伊吾網(wǎng)站營銷推廣歡迎伊吾等地區(qū)企業(yè)咨詢

composer require topthink/think-captcha

控制器引入

use think\captcha\facade\Captcha;

生成驗證碼

public function verify()
{
    return Captcha::create();
}

驗證驗證碼

if( !Captcha::check($vercode)) {
    return json(['code'=>1001, 'msg'=>'驗證碼錯誤');
}

check的方法

/**
 * 驗證驗證碼是否正確
 * @access public
 * @param string $code 用戶驗證碼
 * @return bool 用戶驗證碼是否正確
 */
public function check(string $code): bool
{
    if (!$this->session->has('captcha')) {
        return false;
    }
 
    $key = $this->session->get('captcha.key');
 
    $code = mb_strtolower($code, 'UTF-8');
 
    $res = password_verify($code, $key);
 
    if ($res) {
        $this->session->delete('captcha');
    }
 
    return $res;
}

從以上check方法可以看出來驗證碼驗證是需要session的,而Thinkphp6默認是不開啟的,需要根據(jù)手冊初始化一下

在應(yīng)用app目錄下找到全局中間件middleware.php文件,把下面注釋的代碼\think\middleware\SessionInit::class開啟就行了

// 全局中間件定義文件
return [
    // 全局請求緩存
    // \think\middleware\CheckRequestCache::class,
    // 多語言加載
    // \think\middleware\LoadLangPack::class,
    // Session初始化
     \think\middleware\SessionInit::class
]

以上就是TP6驗證碼驗證失敗的原因以及解決辦法的詳細內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!

網(wǎng)站欄目:怎么解決thinkphp6驗證碼驗證失???
路徑分享:http://muchs.cn/article30/pjjeso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站改版、標簽優(yōu)化網(wǎng)站營銷、做網(wǎng)站企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化