簡體   English   中英

wordpress管理員ajax buddypress身份驗證

[英]wordpress admin-ajax buddypress authentication

要求:Wordpress / Buddypress程序驗證

我已經通過外部API創建了Wordpress用戶注冊過程。 這可以有效地檢查電子郵件是否已注冊,以及是否使用創建新的WP用戶

$random_password = wp_generate_password( $length,$include_standard_special_chars);
$user_id = wp_create_user( $user_name, $random_password, $user_email );

也使用

$meta_key = 'authorities';
$meta_value = $authorites;
add_user_meta( $user_id, $meta_key, $meta_value, true );

角色。 使用add_action('init', MyAuthFunction);調用注冊過程add_action('init', MyAuthFunction); 僅當找不到有效用戶時。

問題是Buddypress心跳admin-ajax.php進程返回

{“ wp-auth-check”:false,“ server_time”:1521498709}

每當嘗試新的活動評論或論壇帖子時。 依次產生(點擊“發布”)

您確定要執行此操作嗎?</ p> <p> <a> href =“ WP_DOMAIN / activity /”>請重試。</a>

作為對admin-ajax.php的回應

因此,我們無法在活動或論壇中發布新項目。 奇怪的是,論壇和活動部分知道哪個用戶已登錄...(即顯示登錄名)

我假設這是buddypress中某種形式的輔助用戶注冊,但似乎找不到它。 到目前為止,我已經看到對鈎子的評論:

  • bp_core_signup_user()
  • bp_signup_validate()

因此:問題-當通過代碼而不是通過注冊表單創建新的WP用戶時,Buddypress是否需要輔助身份驗證或標志形式。

到目前為止,我正在調查:Buddypress其他用戶需求數據(如上述功能所示),通過管理員重新測試新用戶注冊以復制問題。 (到目前為止,在Buddypress插件(或管理員)之前添加的原始用戶還沒有遇到此問題)

更新:嘗試從“光線”響應中使用此信息(在頁面的下半部分) https://buddypress.org/support/topic/how-to-hook-into-add-new-member-in-buddypress-unresolved/

您可以通過添加“ last_activity”用戶元條目以編程方式繞過此操作。

不幸的是,這是不正確的,因為所討論的用戶已經在用戶元數據中為last_activity記錄了。

更新2:停用auth插件,以admin身份登錄,更改用戶密碼,以admin身份注銷,以代碼創建的用戶身份通過​​/ admin /(wp-admin)登錄,在/ activity /中發表評論。 此順序正確地使我可以在活動部分中發表評論。 因此,以編程方式創建的用戶還可以,問題似乎出在“登錄”過程中,以觸發好友按下以使用戶滿意。

插件與admin-ajax is_user_logged_in()結果

更新3:問題的隔離似乎在admin-ajax.php獲得$ current_user(Wp_User)值的方式之內。 如果成員通過/ admin /登錄表單登錄,則會設置一個神奇的值,該值允許admin-ajax.php提取當前用戶。 如果用戶認證cookie是通過設置的

wp_clear_auth_cookie();
wp_set_current_user ( $user_id );
wp_set_auth_cookie  ( $user_id );

然后admin ajax似乎無法獲得$ current_user,因此is_user_logged_in()失敗

因此,重新定義了隔離admin-ajax.php和提取當前用戶的問題(登錄頁面加載但未通過admin-ajax.php登錄)

最后的問題是在某些情況下調用了wp_logout(),從而刪除了

  • wordpress_logged_in_xxxxx
  • wordpress_sec_xxxxx

Cookies是導致is_logged_in_user()返回空實例的原因。

所有提示:通過外部API登錄/登錄Wordpress時,請確保您的Cookie設置正確(http和https以及域)

注意:這根本不是伙伴新聞問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM