2017-06-29 108 views
0

我正在与wordpress进行laravel整合。我有一个可以选择转到wordpress项目的仪表板,但目前它不工作。这个想法是有一个重定向到wp-admin的自动登录。 laravel数据库中的用户必须与wp数据库中的相同。所以它只能通过用户wp不能在wp-database中创建一个新的。我有一个全球性的访问laravel核心。尝试创建一个类与用户的凭据,将作为对象传递给wordpress。有人准备好帮助吗?由于WordPress自动登录

我的WordPress登录代码:

if(!is_user_logged_in()){ 


    $User = new myadmin_user; 

    $userid = $User->ID; 




    if($User=get_user_by('login',$userid)){ 

     clean_user_cache($User->ID); 

     wp_clear_auth_cookie(); 
     wp_set_current_user($User->ID); 
     wp_set_auth_cookie($User->ID , true, false); 

     update_user_caches($User); 

     if(is_user_logged_in()){ 

      $redirect_to = user_admin_url(); 
      wp_safe_redirect($redirect_to); 
      exit; 
     } 
    } 
} 


elseif('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'] == wp_login_url()){ 

    $redirect_to = user_admin_url(); 
    wp_safe_redirect($redirect_to); 
    exit; 
} 

和类:

class myadmin_user 
{ 

    public $ID; 
    public $username; 
    public $email; 
    public $status; 
    public $settings; 


    /** 
    * Object constructor 
    * 
    * @param 
    * @param 
    */ 


    function __construct() 
    { 
      global $appsforcekernel; 
      $this->settings = Auth::user()->getUserSettings(100000002); 
      $appsforceuser = Auth::user(); 

      $this->ID   = $appsforceuser->id; 
      $this->username  = $appsforceuser->username; 
      $this->email  = $appsforceuser->email; 
      $this->status  = $appsforceuser->status; 
      $this->settings  = $appsforceuser->settings; 

    } 



} 

回答

1

你真的需要通过你的Laravel应用的实例,在使用WordPress? 您可以生成一个唯一的WordPress auth令牌传递给一个WordPress页面,该页面与Laravel一起检查发送到其请求标题中的页面的令牌是否与存储在您的laravel数据库中的相关用户的WordPress auth令牌相匹配,如果它运行WordPress方法wp_set_auth_cookie()。我希望这一切都有道理。