私はワードプレスページに埋め込まれるajaxアプリケーションに取り組んでいます。ajaxアプリは、tomcatで実行されているサーブレットとデータを交換します。これで、サーブレットには、ワードプレスにログインしているユーザーからのリクエストかどうかを判別する方法が必要になります。また、ユーザーがログインしている場合、サーブレットは、データベースを照会できるようにするために、ユーザーIDも判別できる必要があります。ユーザーがログインしていない場合、リクエストは拒否されます。
つまり、言い換えると、リクエストを引き起こしたユーザーがwordpress(バージョン3.3.x)にログインしている場合にのみ、サーブレットにリクエストを実行させる必要があります。サーブレット(tomcat)とワードプレス(apache2)の両方が同じ物理マシンで実行され、同じデータベースを共有します。
理論的には、これは次のようにすることで簡単に解決できます。
- ワードプレスログオン中に、一部のユーザートークンがJavaScript変数に保存されます。
- ajaxアプリは、呼び出しのたびにユーザートークンをサーブレットに転送します。
- サーブレットは、トークンを使用して有効な場合(つまり、ユーザーがログインしている場合)にワードプレスにクエリを実行し、要求を実行または拒否します。
問題は、ワードプレス側でこれをどのように実装できるかということです。
理論が非常に複雑になるのは、私がまだPHPプログラミングを行っていないという事実だからです。
最初に、wordpress_logged_in(auth)cookieをサーブレットに送信し、auth cookieがまだ有効である場合はサーブレットにwordpressを照会させることを考えていました。しかし、ログオンしているユーザーのcookie-dataが渡されたとしても、wp_validate_auth_cookie()は常に失敗するため、これは実行できないようです。他の解決策は、セッションIDとユーザーIDをテーブルに格納するプラグインを開発することです。これは、サーブレットから簡単にクエリできるようになります。または多分他の解決策があります...