2016-11-25 14 views
0

別のシステム(この場合はKayakoサポートシステム)に登録されているユーザーを認証する必要があるWebサイトがあります。 私はこの問題を解決するためにAPIを使用する必要があると思いますが、どうやって始めたらよいか分かりません。WordPressへのAPI認証の統合

誰かがこの問題を解決するのを手伝ってもらえますか?認証に必要なデータをどのように送ることができますか?私がKayakoから得た応答をどのように管理しますか?

答えて

1

カヤコシステムのAPIがどのように見えるかを解説します。ワードプレスでは、ユーザーを認証するために、このような似たような操作を行うことができます。

// this action is executed just before the invocation of the WordPress authentication process 
add_action('wp_authenticate','checkTheUserAuthentication'); 

function checkTheUserAuthentication() { 

    $username=$_POST['log']; 
    $password=$_POST['pwd']; 

    // try to log into the external service or database with username and password 
    $ext_auth = try2AuthenticateExternalService($username,$password); 

    // if external authentication was successful 
    if($ext_auth) { 

     // find a way to get the user id 
     $user_id = username_exists($username); 
     // userdata will contain all information about the user 
     $userdata = get_userdata($user_id); 
     $user = set_current_user($user_id,$username); 

     // this will actually make the user authenticated as soon as the cookie is in the browser 
     wp_set_auth_cookie($user_id); 
     // the wp_login action is used by a lot of plugins, just decide if you need it 
     do_action('wp_login',$userdata->ID); 

     // you can redirect the authenticated user to the "logged-in-page", define('MY_PROFILE_PAGE',1); f.e. first 
     header("Location:".get_page_link(MY_PROFILE_PAGE)); 
    } 

} 

try2AuthenticateExternalService()方法は、リモートサービスにはいくつかのカール・リクエスト(または類似)を含める必要があります。

+0

これはどのように見えるのですか? – StoneSmith

関連する問題