Все же давайте теперь разберемся, интересно стало...
dmx102 19.11.2013 19:13
Если вы говорите, что
авторизация работает (т.е. auth_request /auth; - обрабатывается)
Давайте разбираться!
Благодаря модулю auth мы можем, основываясь на результате подзапроса, используя только статус ответа (200, 401, 403), проводить авторизацию клиента.
Значит наш авторизационный скрипт должен принимать что-то на входе и на выходе давать соответствующий статус. Делается это следующим образом:
# В случае успешной авторизации
$response:status[200 Ok]
# Требуется авторизация или неправильный пароль
$response:status[401 Unauthorized]
# Доступ запрещен или превышено число попыток
$response:status[403 Forbidden]
Далее, нам нужно получить авторизационные данные. Но сами они в парсер не попадут, и в добавок парсер нам не дает доступа (или я чего-то не знаю :) к HTTP-заголовкам запроса.
Пишем в конфиге nginx в локейшине скрипта авторизации:
fastcgi_param HTTP_AUTHORIZATION $http_authorization;
Незабываем перезагрузить nginx :)
Надеюсь теперь вам все понятно.
И на последок, вы устанавливаете заголовки
add_header Test-Uin $test_uin;
которые из парсера не видны, либо вам надо делать преедачу параметра окружения.
Так же рекомендую сделать переменную что-то типа:
auth_request_set $test_is_auth $upstream_http_x_auth_test;
и передавать ее в обратных заголовках в виде 0 или 1, чтобы можно было сразу знать, пользователь авторизован или нет