什么是oAuth?
OAuth只是一种安全授权协议,用于处理第三方应用程序的授权,以便在不泄露密码的情况下访问用户数据。例如。 (在许多网站上用fb,gPlus,twitter登录)都可以在这个协议下工作。
有关各方
当您了解相关方时,协议变得更容易。基本上涉及三方:oAuth提供商,oAuth客户和所有者。
这个怎么运作?
我认为一个网站(stackoverflow)需要添加登录Facebook功能的场景。因此facebook是oAuth Provider,stackoverflow是oAuth Client。
的 此步骤由app的开发人员完成 强> 。一开始facebook(oAuth Provider)不知道stackoverflow(oAuth Client),因为它们之间没有链接。所以第一步是用facebook注册stackoverflow 开发者网站 。这是手动完成的,开发人员需要将应用程序的信息提供给Facebook,例如应用程序的名称,网站,徽标,重定向URL(重要的一个)。然后stackoverflow成功注册,从Facebook获得客户端ID,客户端密码等,并启动并运行 的 OAUTH 强> 。
2。 的 现在,当stackoverflow的用户单击使用fb按钮登录时 强> 。 Stackoverflow用ClientId请求facebook(fb用它来识别客户端)和redirectUrl(fb会在成功后返回到这个url)。这样用户就会被重定向到facebook登录页面。这是最好的部分 的 用户(所有者)没有向stackoverflow提供他们的facebook凭证。 强>
更多:
快速视频
网页链接
OAuth究竟是什么(开放授权)?
OAuth允许通知a 的 资源提供者 强> (例如Facebook)那个 的 资源所有者 强> (例如你)授予a的许可 的 第三方 强> (例如Facebook应用程序)访问他们的 的 信息 强> (例如你朋友的名单)。
如果你明白地看到它,我会理解你的困惑。让我们举一个具体的例子:加入另一个社交网络!
假设您有一个现有的GMail帐户。您决定加入LinkedIn。添加你的所有 很多很多 手动的朋友很烦人且容易出错。您可能会在中途受到厌倦或在其电子邮件地址中插入拼写错误以获取邀请。所以你可能最终不想创建一个帐户。
面对这种情况,LinkedIn有Good Idea(TM)编写一个程序,可以自动添加你的朋友列表,因为计算机在厌倦和容易出错的任务上更有效率和效率。由于加入网络现在很容易,所以有 没门 你会拒绝这样的提议,现在好吗?
如果没有用于交换此联系人列表的API,则必须向LinkedIn提供您的GMail帐户的用户名和密码 的 给他们太多的力量 强> 。
这就是OAuth的用武之地。如果您的GMail支持OAuth协议,那么LinkedIn可以要求您授权他们访问您的GMail联系人列表。
OAuth允许:
它会在不久的将来成为事实上的(标准吗?)吗?
好吧,尽管OAuth是向前迈出的重要一步,但如果人们没有正确使用它,它就无法解决问题。例如,如果资源提供程序一次只为您的所有资源提供单个读写访问级别,并且不提供管理访问的机制,那么就没有意义。换句话说,OAuth是一个提供授权功能而不仅仅是身份验证的框架。
在实践中,它非常适合社交网络模型。它特别受那些想要允许第三方“插件”的社交网络的欢迎。在这个领域,对资源的访问本身就是必要的,并且本质上也是不可靠的(即,您对这些应用程序的质量控制很少或没有)。
我没有在野外见过这么多其他用途。我的意思是,我不知道有一家在线金融咨询公司会自动访问您的银行记录,尽管它 可以 从技术上讲,就是这样使用的。
OAuth是一种开放的授权标准,通常用作互联网用户使用其Microsoft,Google,Facebook或Twitter帐户登录第三方网站而不泄露密码的方式。
OAuth 当我们用Facebook / Google注册SO帐户时发生了 按钮。
OAuth
资源 : OAuth1服务提供商
OAuth就是委托授权(选择可以为您授权的人)。请注意,身份验证和授权是不同的事情。 OAuth是授权(访问控制),如果您还想实现身份验证(ID验证),则可以在OAuth之上使用OpenID协议。
Facebook,谷歌,Github等所有大公司现在都使用这种认证/授权。例如,我刚刚使用我的Google帐户在此网站上登录,这意味着Stackoverflow不知道我的密码,它从Google获得了我的密码(显然是哈希)的保留。这带来了很多好处,其中之一就是;在不久的将来,您不必在每个网站上创建多个帐户。一个网站(您最信任的网站)可用于登录所有其他网站。所以你只需要记住一个密码。