1

我已将 Trac 安装为更大网站的子集。理想情况下,我希望能够从主站点将用户登录到 trac,而不必使用 trac 界面本身。主站点在 IIS 上用 PHP 实现。此外,如果用户通过 Trac 登录,那么我希望能够根据用户权限从一些 PHP 页面提供对其他功能的访问。

身份验证在 trac 中使用 htpasswd 文件,并且能够通过 trac 界面管理用户很有用。此外,相同的用户/密码将用于颠覆,因为这可以使用 htpasswd 文件。我不能将它与 IIS 一起使用来通过虚拟路径和身份验证角色进行登录。我不想使用 LDAP/ActiveDirectory

如果能够在 PHP 中实现一个登录页面,将用户实际登录到 Trac,那就太好了。但是我不确定如何在 PHP 页面中添加适当的 __FORM_TOKEN 字段。可以使用 trac 登录页面本身,但是登录后,它会转到 trac wiki 主页,而不是我在表单数据中设置的引用者,如果它不是站点的 trac 部分的子 URL .

能够查询当前从 PHP 登录到 trac 的用户的权限也很方便。大概这可以通过 sqlite 数据库实现,但我怎么知道当前用户是谁?

4

1 回答 1

2

最终我自己为我的 PHP 登录表单生成了 trac_form_token cookie,从 trac 根的子 URL(从 IIS 中覆盖该子 URL,以便它不是由 trac 而是由 php 处理)。很容易做到。

如果您将 trac 配置为将 trac_auth cookie 的路径设置为站点的根目录,那么检查登录用户就很容易了。然后您可以访问它并从 PHP 查询 trac sqlite 数据库以获取用户名和权限。

然后对于 PHP 登录,您生成 trac_form_token 并对 trac 执行 POST curl 请求,然后从返回的响应标头传递您需要的 cookie。

编辑:更改为 trac.ini 以使 trac_auth cookie 在站点范围内可用,而不仅仅是来自 /trac/

[trac] 
auth_cookie_path = \
于 2013-10-02T07:56:32.863 回答