vue怎么输出php验证码,thinkphp5+vue接⼝api驗證碼⽅式我們采⽤的token令牌的⽅式驗證⽤⼾,最近搞了個驗證碼接⼝,前端使⽤的vue接收,遇到如下問題:thinkphp5框架默認⽣成的驗證碼是session⽅式給到前端⽤⼾,但是vue端沒有接收session的⽅式,這個問題不知道是不是前端不會接收session,會接收的就不存在這個問題.我們將驗證碼⽣成改為⽅法cache緩存⽅式,thinkphp5⾃帶的composer下載驗證碼captcha類,在⽣成驗證的地⽅添加緩存,緩存加密保證安全,驗證依舊使⽤接⼝的⽅式,⼤致⽅法就是這樣,有好⽅法的朋友幫忙分享下.指導下我.
前端vue代碼這把
驗證
import store from "../store";
export default {
name: "test_verify",
data() {
return {
code: ''
};
},
created() {
// store.dispatch("verify");
// w_verify;
},
computed: {
verify() {
return store.state.verify;
},
new_verify() {
alert(this.verify.split('"'));
session怎么记忆
// let new_verify = this.verify.split(' ')[1];
// return new_verify;
},
},
methods: {
formData() {
let formData = new formData();
formData.append('code', de);
return formData;
},
vyverify() {
store.dispatch('vyverify', this.$qs.stringify({
code: de,
token: Item('tokens')
}));
// store.dispatch('Vyverify', this.formData)
}
}
};
單獨給個⽅法指向到前端⾴⾯,后端的⽣成驗證碼的⽅法
public function getcode()
{
ob_clean();
$config = config('captcha');
$captcha = new Captcha($config);
return $captcha->entry();
}
驗證端接⼝處理,你也可以放上⾯⽣成驗證碼⽅法控制器⼀起,按⾃⼰需求來,代碼如下public function vyverify(Request $request)
{
$param = $request->param();
$code = strtolower($param['code']);
if (empty($code)) {
$this->error('驗證碼不能為空');
}
$verifycode = Cache::pull('verifycode');
if(md5("$code") == base64_decode($verifycode)){
throw new SuccessMessage(['msg' => '驗證碼驗證成功!']);
}else{
throw  new ErrorException(['errorCode' => '10003', 'msg' => '驗證碼驗證失敗']); }
}