2017-05-15 1 views
0

으로 사용자 지정 WordPress 로그인은 API 나머지 Wordpress 및 각도로 사용자 정의 로그인을 만드는 방법입니다. OAuth를 1.0A 서버 플러그인을하지만 난 그것을API 휴식 및 각도

또는 작업을 수행하는 방법을 알아낼 할수 없어 어쩌면 두 가지 방법 (기본 인증과 OAuth를)를 사용하여 추적 할 수없는 가망 -

현재 내가 WP REST API를 사용하고 있습니다?

나는이 지난 몇 주와 씨름 한 어떤 도움

답변

1

감사하겠습니다. 종류는 유스 케이스에 따라 다릅니다.

먼저 기본 인증을 사용하지 마십시오. 그것은 안전하지 않으며 개발에만 사용됩니다. 설정 시간만큼 가치가 없습니다.

OAuth (내가 생각하기에)는 사용자 어딘가에 이미 저장소가 있고 사용자가 자신의 정보에 액세스하고 계정에 대한 계정을 만들려는 앱 승인을 원할 때 사용합니다. "Faceook으로 로그인 ! " 버튼이나 뭐, OAuth입니다. 틀릴 수도 있지만 그게 당신이 원하는 것이라고 생각하지 않습니다.

내가 상상 한 것, 그리고 내가 생각하는 것, JWT 또는 JSON Web Token Auth. 사용자가 새 사용자 계정을 만들고 앱 내에 완전히 로그인 할 수 있기를 바랍니다.

첫째, WP-API 플러그인에 대한 JWT 인증을 설치 :

https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/

이를 REST API의 JWT 인증을위한 새로운 엔드 포인트를 노출합니다. 사용자 자격 증명으로 해당 끝점에 대해 핑을 수행하고 토큰 응답을받습니다. 그런 다음 토큰을 어떻게 든 저장합니다 (현재 localStorage를 사용하고 있습니다). 그리고 권한이 필요한 모든 요청의 요청 헤더에 추가합니다. 사실 당신은 로그인했습니다! 자세한 내용은 플러그인 문서를 참조하십시오. 요청을 첨부하기위한 예제 코드는 Ang2S가 아니라 Ang2/4이지만 개념은 같습니다. 다음은 코멘트를 게시하는 서비스의 예입니다.

postComment(comment): any { 

let headers = new Headers({ 'Authorization': 'Bearer ' + JSON.parse(localStorage.getItem('currentUser')).token}); 
let options = new RequestOptions({ headers: headers }); 

return this.http 
    .post(this._wpBase + "comments", comment, options) 
    .subscribe((res: Response) => { 
    res.json(); 
    }); 
} 

아마도이 방법을 더 멋지게 사용할 수는 있지만 전적으로 그것을 파악하고 있습니다. 희망이 도움이됩니다!

+0

그게 내가 사용하는 것입니다. 응답 함 – Mauro

0
  1. 붙여 넣기 테마에있는 코드 function.php에 다음 코드를 붙여 넣습니다.
  2. WP-REST-API 플러그인은 워드 프레스 사이트에 설치해야합니다 있는지 확인

    add_action('rest_api_init', 'register_api_hooks'); 
    
    function register_api_hooks() { 
    
    register_rest_route(
    
        'custom-plugin', '/login/', 
         array(
        'methods' => 'GET', 
        'callback' => 'login', 
          ) 
        ); 
    } 
    function login($request){ 
          $creds = array(); 
          $creds['user_login'] = $request["username"]; 
          $creds['user_password'] = $request["password"]; 
          $creds['remember'] = true; 
          $user = wp_signon($creds, false); 
    
         if (is_wp_error($user)) 
    
          echo $user->get_error_message(); 
          return $user; 
           } 
    
    add_action('after_setup_theme', 'custom_login'); 
    
    그런 다음 API가

    http://www.url.com/wp-json/custom-plugin/login?username=xyz&password=xyz

    으로 작성됩니다

당신은으로 200을 얻을 것이다 우체부로 시도 응답 및 user info

+0

작동하지 않음, 요청 사용자 이름에 오류가 발생했습니다 ... – David