我已经安装Trac作为一个更大的网站的子集。理想情况下,我希望能够将用户从主站点登录到trac,而不必使用trac接口本身。主站点是在IIS上用PHP实现的。此外,如果用户是通过Trac登录的,那么我希望能够根据用户权限从一些PHP页面提供对其他特性的访问。
身份验证在trac中使用htpasswd文件,能够通过trac接口管理用户非常有用。此外,同样的用户/pass将用于subversion,因为这可以使用htpasswd文件。我不能在IIS中使用它通过虚拟路径和身份验证角色进行登录。我不想使用LDAP/ActiveDirectory
如果能够在PHP中实现一个实际将用户登录到Trac中的登录页面,那就太好了。但是,我不确定如何在PHP页面中添加一个适当的__FORM_TOKEN字段。可以使用trac登录页面本身,但登录后,它将转到trac wiki主页,而不是我在表单数据中设置的引用,如果它不是站点trac部分的子url。
此外,能够查询当前从PHP登录到trac的用户的权限也很方便。这大概是可能的通过sqlite数据库,但我如何知道谁是当前的用户?
发布于 2013-10-02 07:56:32
最后,我自己从trac根的子url中为我的trac_form_token登录表单生成了cookie (从IIS内部重写该子url,这样它就不会由trac处理,而是由PHP处理)。做起来很容易。
如果您将trac配置为将trac_auth cookie的路径设置为站点的根,则签入用户非常容易。然后,您可以访问它并从PHP查询trac数据库,以获得用户名和权限。
然后,对于PHP登录,生成trac_form_token并对trac执行POST curl请求,然后从返回的响应头传递所需的cookie。
编辑:更改为trac.ini,使trac_auth cookie在站点范围内可用,而不仅仅是从/trac/
[trac]
auth_cookie_path = \https://stackoverflow.com/questions/19115962
复制相似问题