什么是oAuth?以及如何获得oAuth密钥?

时间:2014-01-04 08:14:16

标签: android oauth oauth-2.0

我是android和开发新手我还需要知道什么是oauth以及如何生成oauth key.

我想使用oAuth来使用oDesk API。

提前致谢...

1 个答案:

答案 0 :(得分:2)

OAuth / OAuth2是用于无密码身份验证的协议。 OAuth2是最新推荐的产品 - 它在RFC6749中指定。

为什么要使用OAuth而不是简单的密码?

  • 因此用户无需记住每个网站的密码
  • 因此用户不会尝试在多个网站上使用相同的密码
  • 因此您无需实施密码管理,这很难实现even big companies fail

此外,维护某种形式的用户数据的网站(如Google,Facebook等)可以使用OAuth允许第三方应用程序使用该数据。 OAuth允许他们要求用户同意每个数据应用程序要求。

oDesk支持它,有关详细信息,请参阅their documentation。您需要做什么,是否必须在那里注册apply for an API key here。然后,此API密钥将用于OAuth流程。

在Android应用程序中,您可能会使用一点修改的身份验证流程。这是因为获取令牌的一个步骤是让OAuth服务器将用户重定向到您的应用程序的网页 - 但是在移动应用程序的情况下,您将没有Web服务。通常,作为一种变通方法,您可以使用特殊的redirect_uri值。有关详细说明,请参阅Google OAuth doc。但是我不确定oDesks这样做的方式。

最后,最重要的是,我建议阅读RFC6749。它可能需要一段时间,但它是完全值得的。 OAuth是一个非常复杂的协议,它有它的问题。如果你想使用它,并以安全的方式使用它,你必须知道这些小事。一个简单的例子是使用state参数 - 它不是强制性的,所以你可能在不知道它存在的情况下逃脱,但省略它有serious security implications