3

Mediawiki の編集を一時停止して再開することはできますか?

説明するために、外部データベースにアクセスする MW 拡張機能を作成しました。このデータベースには OAuth 認証が必要です。これは、拡張機能が外部データベースにアクセスできるようにするために、ユーザーを外部サイトにリダイレクトする必要がある 3 段階のプロセスです。MW 拡張機能が extDb のアクセス トークンを既に持っている場合は、すべて問題ありません。ただし、トークンがない場合は問題があります。これはタグ拡張であり、Wiki ページで特定の XML タグを見つけることによってトリガーされます。これは通常、編集の「プレビュー」または「送信」で発生します (例: http://server.com/wiki/index.php )。 ?title=Bibliography&action=submit (パーサー フックはParserFirstCallInit)。OAuth コードによって作成されたコールバック URL は、編集していたページに戻りますが、編集前の状態です。つまり、すべての編集内容が失われます。

編集データを失わずに編集を再開するにはどうすればよいですか?

4

1 に答える 1

2

にデータを保存するだけで使用できます$_SESSION。MediaWiki自体はユーザー認証データを保存するためにそれを使用するので、MediaWiki自身のセッション処理とうまく統合されるべきです。

デフォルトでは、MediaWikiは、匿名ユーザーがログインしようとしたり、セッションを必要とする何かをしようとしたりしない限り、セッションを作成しないことに注意してください。外部認証コードがログインユーザーのみが使用することを意図している場合、これは問題にはなりませんが、安全のために、使用する前にセッションが設定されていることを確認することをお勧めします。

if ( session_id() == '' ) {
    wfSetupSession();
}
于 2012-11-08T19:41:51.833 に答える