从我的主站点登录时,我想在另一个页面上自动登录到 Redmine


When logging in from my main site, I want to auto login to Redmine on another page

我有主要的PHP网站和一个Redmine应用程序。当用户登录到我的网站时,将弹出新选项卡并打开Redmine并使用用户在主网站上输入的用户名和密码登录。或者,如果无法从我的主网站自动登录到 Redmine,是否可以在用户名字段和密码字段上仅使用用户在主网站上输入的默认值?

我仍然是配置Redmine和Ruby on Rails的菜鸟,所以请耐心等待我:(

编辑:主网站和Redmine网站将只是我们小组的系统,所以我认为安全性不会是一个主要问题。此外,它们不会上网,只会通过内部网运行。

你问:

是否可以修改红矿登录页面?让它在网址上获取变量?所以我可以打开一个新窗口,这样:redmine/login?user=user&pass=pass

希望不是。如果 Redmine 构建良好(我可以合理地确定它是),那么它只会在post操作中接受用户凭据,以避免通过浏览器、代理服务器和 Web 服务器中的 URL 记录密码。尝试以这种方式登录或 Redmine 允许您这样做将是糟糕的安全实践。

我在之前的评论中建议的方法之一是让您的 PHP 应用程序成为 Redmine 操作的代理。这里有两个子类别:

  • 使用程序化浏览器组件在Redmine中通过访问页面,单击按钮,提交表单等来执行表单操作。这是"屏幕抓取器"方法,但可能非常可靠,因为大概Redmine不会经常更改其HTML布局。因此,您通常在浏览器中拥有的 cookie 将存储在服务器上。
  • 使用Redmine内置的API。我想没有一个作为标准,但我找到了这个。我没有使用过它,所以你需要测试它的适用性。

在任何一种方法中,您都不会直接使用 Redmine:您将在 PHP 应用程序中构建所需的 Redmine 功能,使用表单接受相关的用户输入,并将服务器从 Redmine 收到的输出呈现到屏幕上。

这将有效,但请记住,无论是就其规模还是复杂性而言,它都不是一个微不足道的项目。如果您追求更简单的替代方案,那么浏览器密码存储是一个选项,但它不会自动登录用户,也不会像在 PHP 应用程序中那样自动发现您登录的用户名。