发送用户名和密码到google oauth认证



我正在开发一个android应用程序,提供有关不同地方的信息。我想在picasa中存储这些地方的图像,并使用google api检索它们,为此我为持有图像的用户创建了一个新的google帐户。

问题是当我开始获取令牌的oauth过程时,我得到了一个要求用户名和密码的新网页。由于这是一个技术用户,所以所有最终用户都不会知道用户和pwd。

是否有办法发送用户名和密码与其他oauth值(client_id, secret_id, redirect_uri,…?

谢谢

Google Oauth认证有三个步骤:

  1. 获取请求令牌
  2. 授权请求令牌
  3. 将授权的请求令牌交换为访问令牌

用户名和密码在这个过程的第二阶段是必需的,在这个阶段,用户通过使用他的登录凭据,授权客户端应用程序访问存储在google服务器上的私有数据。

现在对于@Luis提出的问题,是否有一种方法可以将用户名和密码与其他oauth值一起发送?答案是否定的。不可能在Authorization头或授权URI的查询参数中发送用户名和密码。应该始终让用户知道客户端(也就是您的应用程序)正在使用用户的数据。因此,用户总是被重定向到要求他/她提供登录凭据的网页。这也允许用户为应用程序设置访问控制方面的限制。

如果允许应用程序存储和发送用户登录凭据以及Oauth授权头,那么用户将永远不会知道应用程序正在使用其私有数据,也无法为应用程序设置任何类型的限制。

尝试将您的照片放在Picasa网络相册的公共图库中,在这种情况下,不需要用户帐户来访问照片

如果您想避免显示登录对话框,您可以尝试使用AccountManager获取OAuth令牌。这将有效地在幕后做同样的事情,使用保存的用户名和密码为谷歌帐户。当然,在此之前,该帐户需要在设备上注册。下面是一个简短的描述,您只需要找到Picasa的正确作用域,并将其作为令牌类型传递:http://developer.android.com/training/id-auth/authenticate.html

您可以使用ClientLogin的用户名和密码获得身份验证令牌,但是已经弃用了,所以在新项目中使用它不是一个好主意。

最新更新