Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Кроссдоменная авторизация средставми nginx
Занесите auth_basic в контекст http {}, все server{} внутри унаследуют его
(только что проверил).
05.05.2013, 18:23, "psixozzz@xxxxxxxxx" <psixozzz@xxxxxxxxx>:
> Здравствуйте, Nginx-ru.
>
> Дано: домен с большим количеством поддоменов. Задача:
> открыть доступ только для ограниченного круга лиц, включая мобильные
> клиенты. Крайне желательно ограничиться средствами nginx, не
> вмешиваясь в скрипты сайта. Авторизация нужна только для того, чтобы
> не могли зайти люди "с улицы". Т.е. вполне подойдет что-то слабенькое,
> как, например, факт наличия куки у клиента и т.п. Никак не могу
> придумать, как это реализовать.
> Basic-авторизация не подходит, т.к. она не кроссдоменная.
> Рассматривал вариант когда сайт не пускает никого, у кого
> нет определенной куки, а получить ее можно, зайдя на определенный урл
> внутри сайта. Возникли проблемы с внесением изменений в текущую
> конфигурацию nginx:
>
> if ($cookie_edws != '1033'){
> return 444;
> }
>
> location = /auth_url {
> add_header Set-Cookie
> "lcid=1033;Domain=.domain.com;Path=/;Max-Age=31536000";
> rewrite ^(.*)$ domain.com persistent;
> }
>
> if (!-e $request_filename) {
> rewrite ^(.*)$ /index.php break;
> }
>
> Таким образом, если физически auth_url не существует, то управление в
> location = /auth_url не попадет никогда, а всегда будет передано в if
> (-e $request_filename). Даже если вмешаться в структуру сайта (что
> неприемлимо) и создать файл auth_url, то в location управление не
> попадет из-за существования if ($cookie_edws != '1033'). Замкнутый
> круг какой-то.
>
> Может многоуважаемый All подскажет как быть?
>
> --
> С уважением,
> Psixozzz mailto:psixozzz@xxxxxxxxx
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@xxxxxxxxx
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|