При входе в систему с моего основного сайта я хочу автоматически входить в Redmine на другой странице.

У меня есть основной веб-сайт PHP и приложение Redmine. Когда пользователь вошел на мой веб-сайт, появится новая вкладка, откроется Redmine и войдет в систему, используя имя пользователя и пароль, введенные пользователем на основном веб-сайте. Или, если невозможно автоматически войти в Redmine с моего основного веб-сайта, возможно ли просто иметь значение по умолчанию в поле имени пользователя и поле пароля из тех, которые пользователь также ввел на основном веб-сайте?

Я все еще новичок в настройке Redmine и Ruby on Rails, поэтому, пожалуйста, потерпите меня :(

Изменить: основной веб-сайт и веб-сайт Redmine будут системой только для нашей группы, поэтому я думаю, что безопасность не будет серьезной проблемой. Также они не будут выходить в онлайн и будут работать только через интранет.


person Hans    schedule 16.11.2013    source источник
comment
Открытие нового окна на веб-сайте B возможно на веб-сайте A, но оттуда вход в систему и выполнение действий с сайта A невозможны. Однако вы могли бы сделать это в плагине для браузера. Похоже, что для решения этой проблемы может быть достаточно использовать хранилище паролей браузера? Существует более сложная схема, при которой ваш сайт PHP сам входит в Redmine на уровне сервера и выполняет действия, указанные пользователем на вашем сайте, но здесь это может быть излишним.   -  person halfer    schedule 16.11.2013
comment
Понятно, можно ли изменить страницу входа в Redmine? Чтобы он получал переменные по URL-адресу? Итак, я могу просто открыть новое окно, подобное этому, redmine / login? User = user & pass = pass, затем получить пользователя и передать его и поместить его в поле имени пользователя и поле пароля?   -  person Hans    schedule 16.11.2013
comment
Вы также можете найти ответ на следующий вопрос: stackoverflow.com/questions/20199904/   -  person Andriy Lesyuk    schedule 25.12.2013


Ответы (1)


Вы спрашивали:

можно ли изменить страницу входа в Redmine? Чтобы он получал переменные по URL-адресу? Так что я могу просто открыть новое окно вроде этого: redmine/login?user=user&pass=pass.

Надеюсь, что нет. Если Redmine построен хорошо (а я был бы в этом уверен), он будет принимать учетные данные пользователя только в post операции, чтобы избежать записи паролей через URL-адреса в браузерах, прокси-серверах и веб-серверах. Было бы небезопасно пытаться войти в систему таким способом или если бы Redmine разрешил вам это сделать.

Один из подходов, которые я предлагал в своем предыдущем комментарии, заключался в том, чтобы ваше PHP-приложение стало прокси-сервером для операций Redmine. Здесь есть две подкатегории:

  • Используйте программный компонент браузера для выполнения операций с формами в Redmine, посещая страницы, нажимая кнопки, отправляя формы и т. Д. Это подход «очистителя экрана», но он может быть довольно надежным, поскольку, по-видимому, Redmine не очень часто меняет свой HTML-макет. Таким образом, файлы cookie, которые вы обычно используете в своем браузере, вместо этого будут храниться на сервере.
  • Используйте API, встроенный в Redmine. Думаю, нет ни одного стандартного, но я нашел его. Я не использовал его, поэтому вам нужно проверить его на пригодность.

При любом подходе вы вообще не будете использовать Redmine напрямую: вы должны встроить необходимые функции Redmine в свое приложение PHP, используя формы для приема соответствующего пользовательского ввода и отображать на экране результат, полученный вашим сервером от Redmine.

Это сработает, но имейте в виду, что это нетривиальный проект ни с точки зрения его размера, ни с точки зрения сложности. Если вам нужна более простая альтернатива, то можно использовать хранилище паролей браузера, но оно не будет автоматически регистрировать пользователей и автоматически определять имя пользователя, в которое вы вошли, как в вашем приложении PHP.

person halfer    schedule 16.11.2013
comment
Хорошо. Понятно, попробую ваши предложения. Большое спасибо, обновлю здесь, если что-то найду. - person Hans; 16.11.2013