摘要:首先給出擴(kuò)展地址前期準(zhǔn)備與說明在中使用此擴(kuò)展,正常的用法是通過來保存與驗證用戶輸入的驗證碼是否正確,但我目前的項目是前后臺徹底分離的。前后臺通過來標(biāo)識用戶。值是與圖片綁定的數(shù)值,之后需傳給后臺驗證。
[mews/captcha]
首先給出擴(kuò)展GitHub地址:https://github.com/mewebstudi...
前期準(zhǔn)備與說明 在laravel 中使用此擴(kuò)展,正常的用法是通過session來保存與驗證用戶輸入的驗證碼是否正確,但我目前的項目是前后臺徹底分離的。前臺使用vue框架來搭建,后臺用laravel來做api后臺的接口。前后臺通過jwt來標(biāo)識用戶。所以沒法使用session來使用這個擴(kuò)展,百度了好久,無用,最終還是在官方論壇找到解決方案,在此貼出方案,以便后來人查閱
在laravel中引入此擴(kuò)展【我的框架版本laravel5.5】
composer require mews/captcha
找到config/app.php下的providers,添加如下代碼
MewsCaptchaCaptchaServiceProvider::class,
找到config/app.php下的aliases,添加如下代碼
"Captcha" => MewsCaptchaFacadesCaptcha::class,
發(fā)布配置文件
php artisan vendor:publish
之后便可以在 config/captcha.php下,配置驗證碼
return [ "default" => [ "length" => 5, "width" => 120, "height" => 36, "quality" => 90, ], // ... ];正文開始 因為正常用session的使用方案比較簡單,在此不贅述。
下面放上通過api來驗證的前后端的關(guān)鍵代碼
PHP返回驗證碼
//路由 Route::get("/cp", "AppHttpApiV1LoginLoginController@captcha"); //代碼 public function captcha() { return $this->response->array([ "status_code" => "200", "message" => "created succeed", "url" => app("captcha")->create("default", true) ]); }
請求返回如下圖:
![請求驗證碼接口返回的數(shù)據(jù)](https://img-blog.csdn.net/20181022160100203?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0VyaWNfQWxpdmU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
說明:這里返回的url.img是base64后的圖片,可直接放入img標(biāo)簽中的src屬性中。key值是與圖片綁定的數(shù)值,之后需傳給后臺驗證。
vue發(fā)起請求驗證碼
////html關(guān)鍵代碼////js請求方法 get_cp:() => axios({ url:host.management + "/cp", method: "GET", }), ////js處理獲取請求后的值 changeCodeImg(){ api.get_cp().then((result) => { if(result.status_code == 200){ this.imgcode = result.url.img this.ruleForm2.key = result.url.key } }) }
效果如下圖:
vue發(fā)起登錄認(rèn)證驗證
submitForm(formName) { this.$refs[formName].validate((valid) => { if (valid) { let data = {name: this.ruleForm2.name, password: this.ruleForm2.password , captcha: this.ruleForm2.captcha, key:this.ruleForm2.key} api.login(data).then((result) => { if (result.status_code === 200) { //驗證成功............ } else { //驗證失敗............. //重新請求驗證碼 this.ruleForm2.captcha = ""; this.changeCodeImg(); } }) } else { console.log("error submit!!"); return false; } }); }
PHP關(guān)鍵驗證代碼
////路由,這里是dingoApi擴(kuò)展的寫法 $api->post("login","LoginController@login"); ////驗證操作 if (!captcha_api_check($request->captcha, $request->key)){ return $this->response->array(["status_code" => 400, "message" => "驗證碼不匹配" ]); }
這里有兩種方式來驗證,第一種就是上面的這種只通過一個函數(shù)的方式,第二種是使用validate來驗證:
$data = $req->all(); $validator = Validator::make($data, [ "ckey" => "required", "captcha" => "required|captcha_api:" . $req->input("ckey") ]); if ($validator->fails()) { return [ "msg" => "Validation failed", "errors" => $validator->messages(), ]; } else { return [ "msg" => "Validation passes" ]; }
最后通過語句來總結(jié)一下整個流程
首先是vue請求圖片接口,接口返回圖片的地址與key值。用戶填寫完后,要把這個key值與用戶填寫的值一同傳給后臺做驗證。就這么簡單。
結(jié)束 THE END
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/29550.html
摘要:自動代碼擴(kuò)展開發(fā)時遵守的代碼風(fēng)格是項目開發(fā)規(guī)范。遵照此規(guī)范,在實際操作中,有許多重復(fù),接下來推薦一款專為此規(guī)范量身定制的代碼生成器。可以利用此擴(kuò)展來快速構(gòu)建項目原型。后續(xù)還會為大家?guī)硪恍┳钚碌募夹g(shù)擴(kuò)展。 whoops 錯誤提示擴(kuò)展 whoops 是一個非常優(yōu)秀的 PHP Debug 擴(kuò)展,它能夠使你在開發(fā)中快速定位出錯的位置。laravel默認(rèn)安裝。showImg(https://s...
摘要:自動代碼擴(kuò)展開發(fā)時遵守的代碼風(fēng)格是項目開發(fā)規(guī)范。遵照此規(guī)范,在實際操作中,有許多重復(fù),接下來推薦一款專為此規(guī)范量身定制的代碼生成器。可以利用此擴(kuò)展來快速構(gòu)建項目原型。后續(xù)還會為大家?guī)硪恍┳钚碌募夹g(shù)擴(kuò)展。 whoops 錯誤提示擴(kuò)展 whoops 是一個非常優(yōu)秀的 PHP Debug 擴(kuò)展,它能夠使你在開發(fā)中快速定位出錯的位置。laravel默認(rèn)安裝。showImg(https://s...
摘要:本文經(jīng)授權(quán)轉(zhuǎn)自社區(qū),后續(xù)更新將以帖子內(nèi)容和內(nèi)容為準(zhǔn)。說明另一個令人喜歡的地方,是擁有活躍的開發(fā)者社區(qū),而活躍的開發(fā)者社區(qū)帶來的,是繁華的擴(kuò)展包生態(tài)。本文對上打了標(biāo)簽的擴(kuò)展包進(jìn)行整理,截止到現(xiàn)在年月號,有超過個擴(kuò)展包,以下是下載量最大的個。 本文經(jīng)授權(quán)轉(zhuǎn)自 PHPHub 社區(qū),后續(xù)更新將以 PHPHub 帖子內(nèi)容 和 GitHub 內(nèi)容 為準(zhǔn)。 說明 Laravel 另一個令人喜歡的地方...
showImg(https://segmentfault.com/img/bV6aHV?w=1280&h=800); 社區(qū)優(yōu)秀文章 Laravel 5.5+passport 放棄 dingo 開發(fā) API 實戰(zhàn),讓 API 開發(fā)更省心 - 自造車輪。 API 文檔神器 Swagger 介紹及在 PHP 項目中使用 - API 文檔撰寫方案 推薦 Laravel API 項目必須使用的 8 個...
閱讀 3490·2019-08-30 15:53
閱讀 3406·2019-08-29 16:54
閱讀 2190·2019-08-29 16:41
閱讀 2397·2019-08-23 16:10
閱讀 3377·2019-08-23 15:04
閱讀 1342·2019-08-23 13:58
閱讀 347·2019-08-23 11:40
閱讀 2452·2019-08-23 10:26