session - 暂停和恢复 Mediawiki 编辑 session

标签 session cookies mediawiki edit

是否可以暂停和恢复 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/

相关文章:

ruby-on-rails - Rails ActiveRecord session 存储在 HTML5 SessionStorage 而不是 Cookie 中

Javascript - cookie,有没有办法一次为所有浏览器编写cookie?

postgresql - 如何在 Postgresql 命令行中使用 mwdumper

browser - Cookie 损坏

php - 迁移 MediaWiki 后如何更新所有外部链接

geolocation - Wikimedia Commons API 按(纬度、经度)搜索图像

ios - Ruby on Rails - 使用移动客户端进行用户身份验证

c# - 如何在这个简单的 asp.net webforms 应用程序中拥有和管理 session 超时?

asp.net - Web 服务和 asp.net 应用程序之间的共享 session

python - 浏览器模拟——Python