J如何使用登录名和密码验证用户

时间:2016-04-07 11:42:47

标签: java netbeans google-drive-api google-oauth desktop-application

我开发了一个Java桌面应用程序,它使用AES加密任何文件。我的任务是允许用户(任何用户,只要他们拥有Google云端硬盘帐户)上传/下载Google云端硬盘的文件。

我有一个基本的登录界面,如下所示。他们输入的用户名和密码与用于登录Google云端硬盘的登录凭据相同。图片: Login Screen

然后,简单的用户界面将显示用户的Google云端硬盘帐户文件夹中的文件列表,并将其显示在屏幕上的Jlist中。将有三个按钮用于上传,下载或删除。

我已经阅读了StackOverflow上发布的一些问题以及Google Developers网站上发布的信息,我仍然对它的运作方式感到困惑。我需要的只是某人的帮助,请简要解释所有需要的内容以及我是否在正确的道路上。

我已下载Google API并已识别出所需的jar文件为here。到目前为止,我还没能让他们完全工作。

我已经设法为OAuth 2.0找到以下编码(用于验证用户)以获取访问权限,但是有人可以帮助我理解这个编码,这样我就可以使用它来处理用户的2个文本区域输入用于Google云端硬盘访问的登录用户名和密码。

public static void main(String[] args) {
  try {
    httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    dataStoreFactory = new FileDataStoreFactory(DATA_STORE_DIR);
    // authorization
    Credential credential = authorize();
    // set up global Plus instance
    plus = new Plus.Builder(httpTransport, JSON_FACTORY, credential).setApplicationName(
        APPLICATION_NAME).build();
   // ...
}

private static Credential authorize() throws Exception {
  // load client secrets
  GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY,
      new InputStreamReader(PlusSample.class.getResourceAsStream("/client_secrets.json")));
  // set up authorization code flow
  GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
      httpTransport, JSON_FACTORY, clientSecrets,
      Collections.singleton(PlusScopes.PLUS_ME)).setDataStoreFactory(
      dataStoreFactory).build();
  // authorize
  return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
}

上面的这种连接编码(如果它是对Google Drive的实际连接编码)是我所有问题所在。我真的不理解它并需要帮助才能更改它或使它与两个文本字段一起使用,然后在Google Drive文件夹中显示JList上的文件列表。

通过这种编码,我还需要做什么或者需要使用这种编码?只是一些基本信息或步骤将不胜感激。

1 个答案:

答案 0 :(得分:1)

简单的答案是你不能。

使用登录名和密码进行身份验证在2015年5月称为客户端登录,Google关闭客户端登录服务器。您必须使用Oauth2并请求访问其驱动器帐户,然后您才能访问它。