我正在研究将嵌入在wordpress页面中的ajax应用程序。Ajax应用程序与在tomcat上运行的servlet交换数据。现在,Servlet需要一种方法来确定是否来自登录到wordpress的用户的请求。并且,如果用户已登录,则servlet还必须能够确定用户ID,以便能够查询数据库。如果用户未登录,则该请求将被拒绝。
因此,换句话说,仅当导致请求的用户登录到wordpress(3.3.x版)时,才需要让servlet执行请求。servlet(tomcat)和wordpress(apache2)都在同一台物理计算机上运行并共享同一数据库。
从理论上讲,可以通过以下操作轻松解决:
- 在wordpress登录期间,一些用户令牌会存储在javascript变量中。
- 每次调用时,ajax应用程序都会将用户令牌转发给servlet。
- servlet使用令牌查询wordpress是否有效(即,如果用户已登录),并执行或拒绝该请求。
问题是如何在wordpress方面实现呢?
因为,使该理论如此复杂的是我还没有完成任何php编程的事实。
首先,我正在考虑将wordpress_logged_in(auth)cookie传输到servlet,并让servlet查询authpress是否仍然有效的wordpress。但是看起来似乎无法完成,因为wp_validate_auth_cookie()总是失败,即使传递了已登录用户的Cookie数据也是如此。另一个解决方案是开发一个插件,该插件将sessionid和userid存储在一个表中,而servlet可以很容易地查询该插件。也许还有其他解决方案...