나는 Google 드라이브에 대한 인증을 구현하기 위해 노력하고있어 사용자가 인증하기 위해 Google 로그인 페이지로 리디렉션 될 때구글 OAuth2를하고 AppEngine에
https://google-developers.appspot.com/drive/auth/web-server
첫째, 그것은 분명 아니다. 그들은 그 부분을 보여주는 것처럼 보이지 않습니다.
둘째, 콜백 코드가 표시되지 않습니다. 나는 그것을 이해할 수 있다고 생각하고 새로운 서블릿이나 서비스 또는 EntryPoint를 추가해야하지만 GWT에서는 까다로울 수 있습니다.
클래스가 존재하더라도 클래스 NotFoundException이 계속 발생하며 잘 컴파일됩니다.
Caused by: java.lang.NoClassDefFoundError: com/google/api/client/http/HttpRequestInitializer
at com.onix.sdm.server.SDMServiceImpl.loginServer(SDMServiceImpl.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:115)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:561)
... 40 more
Caused by: java.lang.ClassNotFoundException: com.google.api.client.http.HttpRequestInitializer
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:215)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 47 more
그것은이 라인에 죽어
:
이37 DriveAuthentication da = new DriveAuthentication(); // Same as MyClass
어떻게 당신이 GWT에 구글에서 OAuth2를 추가하는 방법은 무엇입니까?
클라이언트 또는 서버가 정상입니다. 클라이언트라면 서버에 새로 고침 및 액세스 토큰을 제출합니다. .client 패키지에서는 컴파일되지 않습니다. InputStream 클래스를 찾을 수 없습니다 (또는 비슷한). 이것은 .server 패키지에 있으며 실행되지 않습니다! GWT보다 AppEngine의 문제가 더 많습니다. 원시 URL을 사용하는 것이 좋습니다. 그 전에 Perl에서는 Oauth2를 구현했지만 매우 까다 롭습니다. SDK를 제공 할 때 바퀴를 다시 만드는 이유는 무엇입니까? 문제는 모든 SDK 라이브러리의 추상화가 변경된다는 것입니다. – Chloe
나는 당신이 클라이언트 대 서버 인증을 확실히 파악하지 못했다고 겸허하게 제안 할 수 있습니다. 클라이언트 인증에는 새로 고침 토큰이 없습니다. 결국 너 자신의 질문에 좀 대답했다. imho oauth SDK는 매우 새는 추상화입니다. 나는 여러 번 좌절 한 후에 그것을 버렸다. DIY하려면 3 개의 URL 만 있습니다. (1) 인증 코드를 사용하여 콜백 서블릿으로 리다이렉트하는 인증/식별을위한 리다이렉트 URL; (2) 액세스 코드를 새로 고침 토큰 (저장하는)으로 변환하는 POST URL. (3) 새로 고침을 사용하여 액세스 요청을 요청하는 POST URL. 알아야 할 모든 것이 1 페이지에 있습니다. http://goo.gl/1CoFpk – pinoyyid
오해. * .client와 * .server는 각각 GWT가 클라이언트와 서버 코드를 배치하는 패키지입니다. OAuth 코드의 위치는 나와 잘 맞습니다. – Chloe