Можно ли пройти PHP авторизацию по коду?
Я также видел авторизацию в запросе jQuery ajax, с авторизацией ajax можно ли пройти авторизацию PHP?
Я получаю результат страницы по запросу ajax и получаю результат, нет, если я добавлю этот код в начало PHP-скрипта:
$valid_passwords = array ("admin" => "123456");
$valid_users = array_keys($valid_passwords);
$user = $_SERVER['PHP_AUTH_USER'];
$pass = $_SERVER['PHP_AUTH_PW'];
$validated = (in_array($user, $valid_users)) && ($pass == $valid_passwords[$user]);
if (!$validated) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
die ("Not authorized");
}
Теперь он хочет поставить пользователя и пароль. Можно ли поставить логин и пароль по коду? В запросе ajax есть что-то для авторизации, можно ли это использовать для этого?
Вы можете передать пользователя & Паас в URL, как пара
http://username:[email protected]
Конечно да. Заглянуть в функции cURL. PS, вы получите лучший ответ, если вы разместите больше информации.
РЕДАКТИРОВАТЬ…
Для аутентификации пользователя в удаленной системе вам необходимо знать, как выполняется аутентификация. Чаще всего вам нужно использовать CURL, чтобы разместить имя пользователя и пароль на странице входа в систему и сохранить cookie, который он отправляет обратно для будущих вызовов curl.
function Request($url,$params=array()){
$cookiefile = "/path/to/textfile";
if(!file_exists($cookiefile)){
@fopen($cookiefile, "w");
if(!file_exists($this->cookiefile)){
echo 'Cookie file missing. '.$cookiefile; exit;
}
}else if(!is_writable($cookiefile)){
echo 'Cookie file not writable. '.$cookiefile; exit;
}
$ch = curl_init();
$curlOpts = array(
CURLOPT_URL => $url,
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0',
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_COOKIEJAR => realpath($cookiefile),
CURLOPT_COOKIEFILE => realpath($cookiefile),
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTPHEADER => array(
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8""Connection: keep-alive",
"Content-Type: application/x-www-form-urlencoded")
);
if(!empty($params)){
$curlOpts[CURLOPT_POST] = true;
$curlOpts[CURLOPT_POSTFIELDS] = $params;
}
curl_setopt_array($ch,$curlOpts);
$answer = curl_exec($ch);
if (curl_error($ch)) {
echo curl_error($ch); exit;
}
curl_close($ch);
return (@gzdecode($answer)) ? gzdecode($answer) : $answer;
}