2012-07-02 2 views
4

OAuth 대신 Google 계정 사용자 이름과 비밀번호로 인증 할 수 있습니까? 그렇지 않은 경우 향후 버전의 Google 드라이브 API에서 이러한 종류의 인증을 지원할 계획입니까?Google 드라이브 API에서 Google 사용자 이름과 비밀번호로 인증 할 수 있습니까?

현재 사용자 이름과 비밀번호만으로 인증 할 수있는 Google Documents List API을 사용하고 있습니다. 그래서 Google 드라이브 API로 동일한 작업을 수행 할 수 있는지 궁금합니다.

답변

4

인증 메커니즘으로 OAuth 2.0을 사용할 수없는 이유가 있습니까?

클라이언트 로그인은 현재 deprecated이며 OAuth 2.0을 사용하는 것이 좋습니다.

시작하기 쉽도록 Drive SDK documentation과 다양한 클라이언트 라이브러리 프로젝트 페이지에서 사용할 수있는 코드 샘플이 여러 개 있습니다.

+2

예, 응용 프로그램이 명령 줄이고 그래픽 인터페이스가없는 Linux 서버에서 실행되기 때문에 OAuth를 사용할 수 없습니다. – Evgenii

+0

장치 자체에는 그래픽 인터페이스가 필요하지 않습니다. [기본 애플리케이션 흐름] (https://developers.google.com/accounts/docs/OAuth2InstalledApp)을 사용하여 다른 컴퓨터 (예 : SSH)에 인증을 설정할 수 있습니다. 앱에서 방문해야 할 URL을 생성합니다 인증 된 상태에서 코드를 다시 앱에 복사합니다. – Alain

+0

감사합니다. 알랭. GUI가있는 다른 컴퓨터를 사용하여 서버 응용 프로그램을 인증하는 것은 워크 플로를 복잡하게하므로 선택의 여지가 없습니다. 선택의 여지가 없지만 지금은 '문서 목록 API'를 계속 사용하고있는 것으로 보입니다. – Evgenii

0

서버 응용 프로그램을 실행하는 경우 OAuth2 및 드라이브 API가있는 서비스 계정을 사용해보십시오. 이렇게하면 사용자가 콘솔이나 UI를 통해 OAuth2 자격 증명을 제공 할 필요없이 서버에서 앱을 실행할 수 있습니다. 특정 계정의 문서에 앱을 적용하려는 경우 가장 (impersonation)을 수행 할 수도 있습니다.

GoogleCredentials credentials = new GoogleCredential.Builder() 
      .setTransport(HTTP_TRANSPORT) 
      .setJsonFactory(JSON_FACTORY) 
      .setServiceAccountId("[[SERVICE_ACCOUNT_EMAIL]]") 
      .setServiceAccountScopes(DriveScopes.DRIVE, DriveScopes.DRIVE_FILE, 
       "https://www.googleapis.com/auth/userinfo.email", 
       "https://www.googleapis.com/auth/userinfo.profile") 
      .setServiceAccountPrivateKeyFromP12File(Auth.keyFile) 
      .setServiceAccountUser("[[[email protected]]]") 
      .build(); 
    credentials.refreshToken(); 
0

나는이 블로그 게시물을 어딘가에 (아마도 여기에) 발견했다 : http://blog.databigbang.com/automated-browserless-oauth-authentication-for-twitter/.

나는 트위터와 관련이있다는 것을 알고 있지만, 같은 방법을 사용하기 때문에 이름에 약간의 조정이 필요하다고 생각한다. 즉, 스크립트가 서버에서만 실행되는 경우 Jython + HTMLUnit을 설치하고 생성 된 인증 링크로 이동 한 다음 '액세스 허용'버튼을 클릭하여 토큰을 가져 오는 것을 시뮬레이션하십시오.

관련 문제