2017-10-12 11 views
0

私はサイト全体をWordPressのプラグインに入れました。私はワードプレスから逃げようとしていますが、私はまだそれを管理者のユーザーに依存しています。現在ログインしているユーザーのデータ、具体的にはIDにアクセスする必要があります。私はユーザーオブジェクトを取得しないまま一定の場所で自分のデータにアクセスしようとすると投稿要求にログインしたユーザーデータにアクセスしますか?

object(WP_User)#1033 (7) { 
    ["data"]=> 
    object(stdClass)#1032 (0) { 
    } 
    ["ID"]=> 
    int(0) 
.... 

を最後に、これに煮詰めるようです。

$this->get('/assignments', function(Request $req, Response $res, array $args){ 
require_once $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php'; 
    $ch_user = wp_get_current_user(); 
    var_dump($ch_user);die(); 
} 

と::私は私のスリムルータによって呼び出され、コントローラにこのデータを取得しようとしているこれらのルートの

$this->post('/userdata', function(Request $req, Response $res, array $args){ 
require_once $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php'; 
    $ch_user = wp_get_current_user(); 
    var_dump($ch_user);die(); 
} 

どちらも同じグループ、互いに離れたラインです。 最初のものは正しく入力されたユーザーオブジェクトを返し、2番目のものはID:0の空のユーザーオブジェクトを返します。 2つの間の唯一の違いは、1つは取得要求であり、1つはポスト要求です。

私は言葉の専門家ではなく、私はこれで完全に困惑しています。

編集:

私は同様の問題が未解決のままに見つかりましたあなたのコメントから

WordPress Ajax Call -- WordPress User ID

Wordpress REST API Retrurning Currnet User ID as 0

答えて

1

を私はWordPressのセッションでは、現在のユーザーは、標準を使用して設定されたと仮定していますワードプレスのログイン、例えばhttp://aaa.bbb.ccc/wp-login.php

この場合、現在のユーザーの資格情報はクッキーとして受信されます。通常の認証情報のCookieは$ _COOKIE [LOGGED_IN_COOKIE]にあります。あなたはで、これは、両方のあなたのエンドポイントで同じであることを確認することができます:

var_dump($_COOKIE[LOGGED_IN_COOKIE]) 

一つの可能​​性として、このクッキーを受信したり破損していない、現在のユーザーははい、あなたは正しいです0

+0

に設定されるということですログイン要求にはログインしたCookieが正しく、投稿要求にはnullが含まれています。 2つの操作は同じ場所で同じ方法で行われ、問題はスリムであるとしか思えません。私はクッキーを削除するスリムな投稿とは何かを探していますが、解決策が見つからないようです:/ – SpeedOfRound

+1

ログインしたクッキーは、サーバーによって直接、またはクライアントで実行されているJavaScriptコードによって間接的に削除できますブラウザ。ブラウザのネットワークツールを使用してサーバーが送信したCookieを監視することによって、サーバーがログインしているCookieを直接削除(期限切れ)しているかどうかを確認できます。サーバーはクッキーを期限切れにして削除します。 Chromeネットワークツールでは、サーバーから送信されたCookieを「応答Cookie」と呼びます。 – B68C

+0

クッキーが削除された場合、ログアウトされませんか?クッキーはリクエスト中に欠落しています。 – SpeedOfRound

関連する問題