드루팔 서비스 OAuth


8

나는 지금이 문제에 대해 몇 주 동안 노력하고 있으며, 내 인생에 대한 해결책을 찾을 수 없습니다. Drupal 웹 사이트 또는 다른 곳에서 적절한 문서를 찾지 못했다는 사실도 도움이되지 않습니다. 그리고 이미 여기에있는 질문은 구식입니다 (Services 2.x).

Drupal Commerce 지원 사이트에 대한 REST 서비스를 작성하려고합니다. 현재 모든 서비스는 Order 리소스에 대한 기본 CRUD 작업을 허용하고 OAuth로 보안을 유지해야합니다. OAuth 2.0은 필요하지 않습니다. 또한 서버에서 스크립트를 사용하여 호출해야하므로 로그인 경로 재 지정이 불가능합니다 (모든 것이 2 단계 인증으로 수행됨).

현재 스택은 다음과 같습니다

  • PHP 5.3.15
  • 드루팔 7.15
  • 커머스 킥 스타트 프로파일 (7.x-2.0-rc1)
  • 서비스 7.x-3.2
  • OAuth 7.x-3.0 + 18-dev
  • OAuth 인증 7.x-3.2
  • REST 서버 7.x-3.2
  • Commerce Services 7.x-1.x-dev (사용자 정의 주문 코드를 추가 한 모듈입니다)

OAuth PHP 라이브러리를 사용하고 매번 토큰 요청을 호출하면 주문에 대해 검색 / 색인 함수를 사용할 수 있습니다 (인증을 제외하고는 거기에서 무슨 일이 일어나고 있는지조차 확실하지 않습니다 ...). 주문에 POST를 시도하고 주문을 작성하려고하면 OAuth가 사용 중지 된 경우에도 Chrome의 REST 콘솔에서 직접 POST 요청을 시도하면 스크립트에 406이 표시됩니다.

create 함수 내에서 무슨 일이 일어나고 있는지 전혀 모르기 때문에 디버깅이 악몽이되었습니다. 주문 생성 로직을 제거하고 요청 페이로드를 에코합니다. 여전히 406/401 오류가 발생합니다.

주문에 사용자 인증이 필요하기 때문에 401 오류가 발생한다고 가정합니다 (서비스에 대해 OAuth가 꺼져 있어도).

그래도 왜 406 오류가 발생하는지 이해하지 못합니다. REST 서버가 반환하도록 설정된 응용 프로그램 / json을 수락합니다.

주문 작성 로직을 주석 처리하기 전에 주문이 작성되지 않았습니다. (사이트의 다른 곳을 효과적으로 사용하는 경우)

미리 감사드립니다.
-티


지난 몇 개월 동안 서비스 모듈이 업데이트되어 모든 POST, PUT 및 DELETE 요청에 대해 헤더에 토큰을 보내야합니다. 이 당신이 가지고있는 문제가되지 않습니다 있는지 확인 drupal.org/node/2013781 이 GET 요청을 영향을주지 않습니다.
CR47

RESTws를 확인하는 것이 좋습니다 . 이것은 D8 코어에 있습니다.
kqw

답변:


1

받기 요청이 세션 인증이 필요하지 않은, POST는, PUT, DELETE 사용자를 알고 그 요청을 완료 여부를 오른쪽 권한이 있는지 확인하는 세션 인증이 필요합니다.

Oauth 인증에는 많은 유형의 인증이 있으므로 요청이 완료 될 수 있도록 앱 (예 :)이 아닌 사용자를 인증해야합니다.


0

oAuth 인증을 끌 때 동일한 내용을 확인 했습니까? 그렇지 않은 경우 서비스 호출에서 샘플 json obj를 반환 한 후 시도해보십시오.


Drupal Answers에 오신 것을 환영합니다! 의견이나 질문을 답변으로 게시하지 마십시오. 이것은 포럼이 아니며 , OP에게 질문을하는 데 답변 을 사용해서는 안됩니다. (충분한 평판
무료 Radical
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.