2012-01-16 3 views
0

NuSoap을 사용하여 API 서버를 구현하고 있습니다.PHP NuSoap의 API 메소드에 인증 정보를 전달하는 좋은 방법은 무엇입니까?

function createComment(articleID, content); 

이 이상적으로 주어진 문서에 코멘트를 작성하고이 인증 된 사용자에게 속성 것 : 공공의 SOAP API는 다음과 같은 방법이있을 수 있습니다.

인증은 http auth를 통해 처리됩니다. 따라서 nusoap_server 객체에는 사용자 정보가 있습니다.

어떻게 createComment에서이 정보에 액세스 할 수 있습니까? 서버에 대해 아무것도 모릅니다. 전 글로벌 공간에 사용자 정보를 넣는 것을 피하고 싶었지만 다른 쉬운 방법이 없다고 생각하기 시작했습니다.

구현 메서드에 추가 인수 (사용자 정보)가있는 반면 메서드에 대한 공용 서명이 위에서 설명한대로 유지되는 기술이 있습니까?

답변

1

SoapServer는 원격으로 매개 변수가있는 함수를 호출하는 수단을 제공합니다. 호출되는 함수는 SoapServer가 통신을 처리하도록하는 정보가 없으므로 매개 변수가 전달되는 것으로 간주됩니다. 그래서 실제 매개 변수로 사용자 자격 증명을 함수 호출에 추가하지 않으려면 globaly 자격 증명을 등록하는 것과 같은 작업을 수행해야합니다. 이것은 글로벌 범위에 명시 적으로있을 필요는 없습니다. 어떤 값의 레지스트리 패턴 인스턴스에 등록 될 수 있습니다.

+0

이것이 결국 내가 한 일입니다. 나는 모든 것을 좀더 깔끔하게 유지하고 전역을 피하고자했지만 실용적이지 않았습니다. 내 구현 함수는 클래스 내에 있습니다. 그들은 각각 AUTH 매개 변수에 대한 인수를가집니다. 그런 다음 그것을 감싸는 전역 함수를 작성했습니다. 각 전역 함수는 "등록 된"auth 객체에 액세스하여이를 구현 함수에 전달합니다. 아아, php에 데코레이터가 있다면이 솔루션은 더욱 간단 해집니다. – Dave

+0

코드를 볼 수 있습니까? 감사 – butching