Авторизация в ejudge
Доброго времени суток,
(ejudge 2.3.29+ (SVN r7685))
Когда пользователь авторизуется на определённый контест, ему выдаётся SID, и для того, чтобы переключиться на другой контест ему надо выйти и снова зайти. Можно ли сделать чтоб ему не надо было выходить? И можно ли SID хранить например в куках, чтоб по переходу с другого сайта он уже был авторизован на контест (если входил на эту страницу ранее)?
(ejudge 2.3.29+ (SVN r7685))
Когда пользователь авторизуется на определённый контест, ему выдаётся SID, и для того, чтобы переключиться на другой контест ему надо выйти и снова зайти. Можно ли сделать чтоб ему не надо было выходить? И можно ли SID хранить например в куках, чтоб по переходу с другого сайта он уже был авторизован на контест (если входил на эту страницу ранее)?
Re: Авторизация в ejudge
Пользователю не нужно выходить, чтобы зайти в другой турнир, можно работать в нескольких турнирах одновременно.
Re: Авторизация в ejudge
А как это сделать, не теряя авторизации?
У меня не получается, делаю так:
Захожу /cgi-bin/register, выбираю контест и перехожу по ссылке
Авторизуюсь и могу сабмитить
Перехожу обратно на вкладку контестов и кликаю на другом контесте, но там я уже не авторизован
Или если взять ссылку авторизованного пользователя и добавить к ней &contest_id=новыйномер, то контест выбранный остается и на новый не переключается
Все контесты состоявшиеся, включенные в режиме дорешки. (Версия 2.3.29+)
У меня не получается, делаю так:
Захожу /cgi-bin/register, выбираю контест и перехожу по ссылке
Авторизуюсь и могу сабмитить
Перехожу обратно на вкладку контестов и кликаю на другом контесте, но там я уже не авторизован
Или если взять ссылку авторизованного пользователя и добавить к ней &contest_id=новыйномер, то контест выбранный остается и на новый не переключается
Все контесты состоявшиеся, включенные в режиме дорешки. (Версия 2.3.29+)
Re: Авторизация в ejudge
А почему не зайти еще раз на register и снова ввести логин/пароль?
Re: Авторизация в ejudge
Например, чтобы один пользователь мог передать ссылку на контест просто скопировав URL в браузере, без удаления SID.
Ещё у меня на серве стоят rewrite, типа: /contest/13/ -> /cgi-bin/new-client?contest_id=13, но дело в том, что сами cgi-bin программы ссылаются абсолютно, и в итоге это все равно приводит к ссылками вида /cgi-bin/new-client?contest_id=13, можно ли это как-то исправить? То есть чтобы ссылка http://site.com/cgi-bin/new-client?contest_id=13, выводилась new-client-ом как /contest/13/
Ещё у меня на серве стоят rewrite, типа: /contest/13/ -> /cgi-bin/new-client?contest_id=13, но дело в том, что сами cgi-bin программы ссылаются абсолютно, и в итоге это все равно приводит к ссылками вида /cgi-bin/new-client?contest_id=13, можно ли это как-то исправить? То есть чтобы ссылка http://site.com/cgi-bin/new-client?contest_id=13, выводилась new-client-ом как /contest/13/
-
- Posts:79
- Joined:12 April 2014, 11:08
Re: Авторизация в ejudge
Не подскажете, как Вы настроили такой Rewrite?OkMan wrote:Например, чтобы один пользователь мог передать ссылку на контест просто скопировав URL в браузере, без удаления SID.
Ещё у меня на серве стоят rewrite, типа: /contest/13/ -> /cgi-bin/new-client?contest_id=13, но дело в том, что сами cgi-bin программы ссылаются абсолютно, и в итоге это все равно приводит к ссылками вида /cgi-bin/new-client?contest_id=13, можно ли это как-то исправить? То есть чтобы ссылка http://site.com/cgi-bin/new-client?contest_id=13, выводилась new-client-ом как /contest/13/
Re: Авторизация в ejudge
В nginx в настройках сайта прописано примерно так (без учёта параметров):
Для сервера на базе Apache можно аналогичное прописать в .htaccess или настройках сайта через RewriteEngine On.
Code: Select all
location ~^/contest/[0-9]+[/]*$ {
rewrite ^/contest/([0-9]+) /cgi-bin/new-client?contest_id=$1 last;
}
Re: Авторизация в ejudge
попробуйте такой редирект в конфиге апача
Code: Select all
Redirect /cgi-bin/new-client "/ej/user"
Re: Авторизация в ejudge
Но это ведь не позволит делать ссылки вида /contest/12/.
-
- Posts:79
- Joined:12 April 2014, 11:08
Re: Авторизация в ejudge
Если это вставить в .htaccess, то будет работать?OkMan wrote:Code: Select all
location ~^/contest/[0-9]+[/]*$ { rewrite ^/contest/([0-9]+) /cgi-bin/new-client?contest_id=$1 last; }
Re: Авторизация в ejudge
Нет, это будет работать только для nginx. Для Apache будет работать что-нибудь типа этого:
Code: Select all
RewriteEngine on
RewriteRule ^/contest/([0-9]+)$ /cgi-bin/new-client?contest_id=$1 [R]
-
- Posts:79
- Joined:12 April 2014, 11:08
Re: Авторизация в ejudge
Где должен располагаться .htaccess с этими строками?
Re: Авторизация в ejudge
В корне сайта.
Но лучше прописать эти правила не в htaccess, а в httpd.conf
Но лучше прописать эти правила не в htaccess, а в httpd.conf