[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как сделать кроссдоменную базовую аутентификацию?
yertuwernat
Всем привет!

Пытаюсь сделать простейшую базовую аутентификацию из мобильного приложения (phonegap) на php-сервере.

Этот кусок кода всегда работал в обычном режиме, когда страница открыта со своего домена. Попытался тупо сделать кроссдоменную версию - и не работает.

Прошу указать где ошибка, или как еще максимально просто сделать это же.
Нужно чтобы клиент через XMLHttpRequest обращался к серверу по логину и паролю.

На сервере такой код:

<?php
header("Access-Control-Allow-Origin: *");

if(empty($_SERVER['PHP_AUTH_USER']))
{
header('WWW-Authenticate: Basic realm="WWW-Authenticate"');
header ('HTTP/1.0 401 Unauthorized');
exit();
}

print "1";
?>



На клиенте такой код:

var php_авторизоваться = function()
{
var запрос = new XMLHttpRequest()
запрос.open('POST', 'http://localhost:2222/авторизоваться.php')
запрос.send()
запрос.onreadystatechange = function()
{
if(запрос.readyState === 4)
{
var ответ = запрос.responseText

if(ответ === '1')
{
alert(1)
}
}
}




php-код без фрагмента if(empty($_SERVER['PHP_AUTH_USER']))... работает нормально, то есть связь с сервером есть и он печатает "1"
Но авторизация не работает.
yertuwernat
Поправил код - теперь всплывает браузерная аутентификация, сервер создает папку но клиент не получает ничего кроме пустого ответа


var php_зарегистрироваться = function()
{
var запрос = new XMLHttpRequest()
запрос.open('POST', 'http://localhost:2222/зарегистрироваться1.php')
запрос.withCredentials = true
запрос.send()
запрос.onreadystatechange = function()
{
if(запрос.readyState === 4)
{
var ответ = запрос.responseText

if(ответ === '')
{
alert('ошибка')
}
else
{
alert(ответ)
}
}
}
}




<?php

if(empty($_SERVER['PHP_AUTH_USER']))
{
header('WWW-Authenticate: Basic realm="WWW-Authenticate"');
header ('HTTP/1.0 401 Unauthorized');
exit();
}

$id = md5($_SERVER['PHP_AUTH_USER'] . $_SERVER['PHP_AUTH_PW']);

//проверка логина и пароля

mkdir($id);
print "$id";

?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.