2

我目前正在开发 Contact Importer 网络应用程序(使用 PHP),因此我将能够从 Gmail、Yahoo 等用户的帐户中获取电子邮件地址,并将它们用于我自己的邪恶目的。开个玩笑,我的网络应用程序非常友好。

我想我会从谷歌开始。我发现他们有一个很棒的小 API,叫做 Google Contacts API,它可以让像我这样的程序员访问用户的联系人。

经过几个小时的挣扎和乱码,我遇到了一些障碍。我的主要问题是:

有什么方法可以让用户在我的网站上提供他们的 Gmail 用户名和密码,并让我的代码检索联系人,而无需将讨厌的重定向到 Google 登录页面?这有点破坏了我的网络应用程序的整个流程。

我已经研究了 AuthSub,并让它工作,但当然问题是你必须重定向用户才能获得访问令牌。看起来 OAuth 也会有同样的收获。

我拥有的一线希望是 ClientLogin 身份验证方法。同样,有一个问题,有时 Google 会向您抛出验证码而不是身份验证令牌。再次,用户流被破坏了。

我注意到我们在 Twitter 上的好朋友们工作得很好。有谁知道他们是怎么做到的?

谢谢!

4

1 回答 1

7

我认为您已经确定了一个功能,而不是一个错误。OAuth 的全部意义在于防止用户将密码输入到像您这样的第三方网站:这样他们就可以学会只在查看 Google 登录页面时输入他们的 Google 密码,而不必相信您赢了不要存储他们的密码并用它来阅读他们的所有电子邮件。

它确实会在您的 Web 应用程序的流程中提供一个小中断,但 OAuth 通常会提供一个回调,因此它不应该真的是一个大的中断。作为交换,您的用户会感到更安全,并且您可以避免任何必须存储(然后处理)用户密码的问题。

简而言之,我认为你无法解决这个问题。的确,Twitter 目前确实允许它(“基本身份验证”,用户名和密码直接发送),但该功能计划在今年夏天弃用

于 2010-03-20T09:50:11.043 回答