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



我是安卓系统的新手,正在开发中,我需要知道什么是oauth以及如何生成oauth key.

我想要使用oAuth以便使用oDeskAPI。

提前感谢。。。

OAuth/OAuth2是用于免密码身份验证的协议。OAuth2是最新的、推荐的一个,它在RFC6749中指定。

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

  • 这样用户就不必记住每个站点的密码
  • 这样用户就不会试图在多个网站上使用相同的密码
  • 所以你不必实现密码管理,这很难,甚至大公司也会失败

此外,维护某种形式的用户数据的网站(如谷歌、脸书等)可以使用OAuth允许第三方应用程序使用这些数据。OAuth允许他们对应用程序要求的每一条数据都征求用户的同意。

oDesk支持它,请参阅他们的文档以了解更多详细信息。你需要做的是,你必须在那里注册,并在这里申请API密钥。然后将在OAuth流中使用此API密钥。

在Android应用程序中,您可能会使用稍微修改过的身份验证流。这是因为获取令牌的一个步骤是让OAuth服务器将用户重定向到应用程序的网页,但对于移动应用程序,您将没有web服务。通常,作为一种变通方法,您可以使用特殊的redirect_uri值。请参阅Google OAuth文档以获得一个很好的解释。不过,我不确定oDesk做这件事的方式。

最后,最重要的是,我建议阅读RFC6749。这可能需要一段时间,但这是完全值得的。OAuth是一个相当复杂的协议,它有它的问题。如果你想使用它,并以安全的方式使用它,你必须知道这些小事。一个微不足道的例子是使用state参数——它不是强制性的,所以你可能甚至不知道它的存在就可以离开,但忽略它会带来严重的安全隐患。

最新更新