是否可以暂停和恢复 Mediawiki 编辑?
为了解释,我编写了一个访问外部数据库的 MW 扩展;此数据库需要 OAuth 身份验证,这是一个三步过程,需要将用户重定向到外部站点以允许扩展访问外部数据库。如果 MW 扩展已经有了 extDb 的访问 token ,那么一切都很好。但是,如果没有 token ,就会出现问题。这是一个标签扩展,通过在 wiki 页面中找到某个 XML 标签来触发,这通常发生在编辑的“预览”或“提交”中,例如http://server.com/wiki/index.php?title=Bibliography&action=submit (解析器 Hook 是 ParserFirstCallInit )。由 OAuth 代码构建的回调 URL 会将您返回到您正在编辑的页面,但处于编辑前状态:即您将丢失所有编辑。
如何恢复编辑而不丢失我的编辑数据?
最佳答案
您可以将数据存储在 $_SESSION
中. MediaWiki 本身使用它来存储用户身份验证数据,因此它应该与 MediaWiki 自己的 session 处理很好地集成。
请注意,默认情况下,MediaWiki 不会为匿名用户创建 session ,除非他们尝试登录或执行其他需要 session 的操作。如果您的外部身份验证代码仅供登录用户使用,这应该不是问题,但为了安全起见,您可能需要确保在尝试使用之前设置 session :
if ( session_id() == '' ) {
wfSetupSession();
}
关于session - 暂停和恢复 Mediawiki 编辑 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13241100/