2

以前,我安装的应用程序(桌面应用程序)使用带有机制的 gdata-java-clientClientLogin,供用户访问 Google 服务。

为了提供无缝体验,桌面应用程序将以加密格式存储用户之前输入的用户名和密码。每当他们想访问谷歌服务时,桌面应用程序会自动帮助用户填写用户名+密码信息。(即使在应用程序重新启动后)用户只需单击按钮即可访问 Google 服务。

在此处输入图像描述

登录代码如下:http: //jstock.hg.sourceforge.net/hgweb/jstock/jstock/file/808b03e824bf/src/org/yccheok/jstock/gui/Utils.java#l1520

我计划将代码迁移到google-api-java-client,并使用OAuth 2.0。由于我的桌面应用程序无法控制用户输入的用户名和密码,因此用户每次希望使用 Google 服务时都会收到以下 Windows 提示。

在此处输入图像描述

用户流程似乎不再是无缝的,因为用户每次重新启动应用程序后都需要处理浏览器窗口。我的桌面应用程序有什么办法可以记住他们的登录信息,这样他们就不需要在每次应用程序重新启动时响应浏览器窗口?

4

2 回答 2

2

好问题。是的,我们正在努力解决这个问题。功能请求在这里,正在审查的变更集在这里。我们的计划是在 7 月的某个时候在下一个版本 1.11.0-beta 中提供它。现在,请随意将 FileCredentialStore 从变更集中修补到您的应用程序中并尝试一下。可以在此处找到有关 Java 客户端库中 OAuth 2.0 支持的更多文档(将针对 1.11.0-beta 进行更新,其中包含有关 FileCredentialStore 的信息)。

于 2012-06-11T14:25:44.817 回答
0

看看https://developers.google.com/accounts/docs/OAuth2InstalledApp。这是您的应用程序类型的一般指南 - 安装在客户端计算机上。

告诉你These applications, in general, cannot keep secrets.但是如果你已经存储了用户的凭据 - 它真的会改变你吗?

于 2012-06-06T13:19:32.730 回答