2013-04-29 2 views
0

Cloud Endpoint가있는 Google App Engine 앱을 개발 중입니다. 내 응용 프로그램은 OpenID를 사용하여 사용자를 인증합니다. 사용자가 로그인하면 동일한 세션에서 끝점에 대한 호출이 있습니다. 끝점 코드에서 현재 로그인 한 사용자의 사용자 서비스에 액세스하려고합니다. 이것은 개발 서버에서 작동하지만 Google에 배포 한 후 userService는 getCurrentUser() 호출에 null을 반환합니다.Google Cloud Endpoint에서 UserService에 액세스

클라우드 엔드 포인트를 실행하는 동안 현재 로그인 한 사용자를 얻을 수 있습니까?

답변

3

Endpoint 메서드 내에서 UserService를 사용할 수 없습니다 (적어도 /_ah/api을 통해 호출 된 메서드는 아닙니다). 엔드 포인트에 현재 사용자가 예를 들어, 상기 방법은 서명에 주입을 통해 수행되는 방법 :

public Score insert(Score score, User user) 

User 오브젝트가 채울 것 중 하나가 유효한 사용자 객체 (요청으로 전송 된 토큰이 유효한 경우) 또는 null (그렇지 않은 경우).

로컬 테스트가 어떻게 성공하고 있는지 잘 모르겠습니다 만, 내가 설명한 것은 예상되는 동작입니다.

+0

빠른 응답 감사합니다. 제안하고 재배포 할 때 내 방법을 수정했습니다. 나는 동일한 null 사용자 객체를 얻는다. 로컬 개발 서버에서 다시 테스트했는데 사용자 개체가 유효합니다. – Kevin

+0

'null'은 토큰이 유효하지 않음을 의미합니다. 요청을하기 위해 어떤 클라이언트 라이브러리를 사용하고 있습니까? –

+0

나는 클라이언트 라이브러리를 사용하지 않고 단지 세션에 인증하는 데 사용 된 브라우저 인스턴스를 사용하여 GET 요청 만하면된다. – Kevin

관련 문제