cURL ile çözüm önleyebilir. konsolunda
public function beforeAction() {
if ($this->action->id == 'export') {
Yii::$app->controller->enableCsrfValidation = false;
}
return true;
}
cURL komutları Kontrol örneğin bakabilirsiniz: Web denetleyicisi
CSRF doğrulama devre dışı adres Böyle:
$ch = curl_init();
$options = array(
CURLOPT_URL => $url,
CURLOPT_REFERER => $url,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_COOKIESESSION => true,
CURLOPT_COOKIEJAR => 'curl-cookie.txt',
CURLOPT_COOKIEFILE => '/var/www/yii/frontend/web/tmp',
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_MAXREDIRS => 10,
CURLOPT_USERAGENT => "Dark Secret Ninja/1.0",
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => "LoginForm[username]=".$username.
"&LoginForm[password]=".$password.
"&LoginForm[rememberMe]=1",
CURLOPT_SSL_VERIFYPEER => false,
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); //get status code
if ($httpCode != 200){
echo "Return code is {$httpCode} \n"
.curl_error($ch);
} else {
echo htmlspecialchars($response);
}
curl_close($ch);
Sadece bir http isteği yapabilir (başka kıvrılmış veya kullanarak). Ya da bir konsolda ve bir web denetleyicide kullanabilmek için kodunuzu başka bir yere koyun. Bu özel durumda – soju
@soju, LDAP kimlik bilgileriyle kimlik doğrulaması olduğundan cURL'nin nispeten zor kullanımıdır. –
Ardından kod mantığınızı gözden geçirmelisiniz. – soju