web-dev-qa-db-ja.com

ワードプレスのセッションはどこに保存されていますか?

外部アプリからセッションの整合性を検証できる必要があります。セッションがwordpressのどこに保存されているかわかりませんか?

セッショントークンをヘッダーとして受け取る安らかなアプリを作成し、そのセッションに関連付けられたユーザーをロードできるようにしたいと思います。それは可能ですか?私はそれがあると確信しています、私はただどこにも見つけることができません。私はコードを検索しようとしましたが、すぐに迷子になります。

WordPressがCookieを保存する方法(@birgireが述べているように、クライアントサイド): https://codex.wordpress.org/WordPress_Cookies

Cookieドメインは通常WordPressのsiteurlに完全修飾されているので、これは別のサブドメインではうまくいかないと思います(誰かが私を直しても構いません)。

same ドメイン上の別のアプリでそれをやっていたのなら、wp-includes/pluggable.phpを見て、ユーザーのデータベースレコードからハッシュを生成してチェックするwp_validate_auth_cookie()関数($_COOKIES内)を利用する必要があります。クッキーと一致する場合もしそうなら、あなたは彼らのユーザーIDを取り戻します。

2
William Turrell

WordPressのセッションはあなたのPHP設定に従って、デフォルトではあなたのファイルシステムに保存されます。 session.save_path 設定については、 PHP.ini ファイルを調べてください。ユーザーがログインしない限り、WordPressはセッションを作成しません。

あなたの "外部の"アプリが同じサーバー上にあり、PHPと同じ動作をしていると仮定すると、あなたは単に同じセッションを開くことができます:

session_id($session_token);
session_start();
1
Olivier