2014-10-14 5 views
0

나는 Drupal 7과 Services 3.x (3.10)를 가지고있다. 은/관리/구조/서비스 페이지에서 , 난 엔드 포인트 및 내 사용자 지정 모듈을 만들 수 있습니다drupal 서비스 모듈에서 세션 인증을 사용하는 방법

function webServices_services_resources() { 
$api = array(
'customers' => array(
    'retrieve' => array(
    'help' => 'Retrieves posted blogs', 
    'callback' => '_webServices_retrieve', 
    'access arguments' => array('access content'), 
    'access arguments append' => FALSE, 
    'args' => array(
     array(
      'name' => 'id', 
      'type' => 'int', 
      'description' => 'The id of the note to get', 
      'source' => array('path' => '0'), 
      'optional' => FALSE, 
     ), 
     ), 
    ), 
    ), 
); 
return $api; 
} 

지금 난 내 BASE_URL/엔드 포인트/사용자/login.json에 POST 요청을을 (사용자 이름과 암호를 전달) 그리고 나는 session_name과 session_id를 얻는다. 나는 다음과 같은 헤더/1.json (예를 들어) BASE_URL/엔드 포인트/고객을 호출하는 경우

는 :

User-Agent: Fiddler 
Content-Type: application/json 
Host: liburna3.alpha-si.org 
Cookie: SESS738851ba4e98ab1f17a7252513dc0719=hy5xVjlDzjIbXz-nlwEV4GywbAPAPL0d_aFGhtIRWzw 

난 오류 403 얻을 : 액세스가 사용자에 대한 거부 XXXXXXXXX

문제는 무엇인가 ?

+0

- https://groups.drupal.org/node/358308 – Clive

+0

내가 넣어 시도를 또한 헤더의 X-CSRF-Token : : 0YHNSF62OVt9yttpgMFvbrvSEdTzGvNIqdZ53OY (로그인 응답에서 수신)와 동일한 결과가 나타납니다 ... 인증되지 않았습니다. – Tom

+0

이것이 해당 로그인 세션에 대해 다시 제공하는 토큰 인 경우 작동합니다 . 항상 나를 위해. 만약 당신이 정확하게 문서를 설명하는대로, 그리고 그것을 작동하지 않습니다, 모듈에 버그 보고서를 엽니 다 ... 당신의 코드가 잘못 될 가능성이 높습니다 – Clive

답변

1

나는 base_url/endpoint/system/connect를 호출하는 인증 상태를 점검 할 것입니다. 당신이 로그인 (또는 옳지 않다 헤더)하지 않는 경우

그것은 반환

"sessid": "PfG79I6elMMYln8nyftReLOY0d5So7O0C3LRIdbOeMo", 
    "session_name": "SESS74282c529439441e18b575b0e6fe308f", 
    "user": { 
    "uid": 0, 
    "hostname": "2a02:8388:1580:2500:7b:3322:23a4:c902", 
    "roles": { 
     "1": "anonymous user" 
    }, 
    "cache": 0, 
    "timestamp": 1460891635 
    } 
} 

이 결과의 사용자 속성에서 전체 userdatat을 반환 당신이 로그인 한 경우.

거의 모든 drupal 서비스 호출에 대한 테스트 사이트 설정> 기본 경로와 엔드 포인트를 입력하고 백엔드를 테스트 할 수 있습니다. 여기에서 찾으십시오 =>http://www.drupalionic.org/explore/

데이터를 입력 한 다음 자원 -> 서비스 3.x -> 시스템으로 이동하여 연결 탭을 클릭하십시오.

또한 여기 드루팔 서비스를위한 완전한 기능을 갖춘 각 lib 디렉토리를 찾을 수 =>https://github.com/BioPhoton/ng-drupal-7-services

당신은 CSRF 토큰이 누락