github(twitter,stripe& co)是否使用oauth进行自己的登录?

时间:2016-06-17 13:16:16

标签: authentication oauth

github(twitter,stripe& co)是否使用OAuth作为自己的登录/注册表单?

所有这些身份验证都是基于cookie的,这个常规Web客户端是基本身份验证还是使用某种形式的OAuth或xAuth?

登录时,对https://github.com/session(或https://twitter.com/sessionshttps://dashboard.stripe.com/ajax/sessions)的调用(使用凭据作为formdata提供)导致302(或条带为200){ {1}}以及https://github.com(或https://twitter.com)的位置。

他们似乎没有使用Set-Cookie来获取client_id并将其与code进行交换。所有OAuth舞蹈似乎都是条纹的。还有Bearer标题。那么,这里发生了什么?

感谢。

2 个答案:

答案 0 :(得分:1)

OAuth是一个三足系统,双腿有点无用。使用OAuth的重点是让其他服务能够像您一样执行操作,而无需自己进行特定的身份验证或传递数据。最后,您仍必须对某些Auth服务进行身份验证。

由于您使用这些服务作为其他网站的身份验证机制,因此尝试在您自己的网站中使用它是没有意义的。作为设置OAuth的一部分,第二个站点重定向到第一个站点并要求在那里进行身份验证,这意味着您确实需要输入凭据。这意味着,如果您可以将您的凭据输入到github中,那么使用不同的身份验证机制是无用的。

OAuth允许非github通过信任github来创建用户帐户,或者允许非github站点通过登录github接受该策略,一旦用户同意交互,就会对用户进行github更改(使用他们的凭据登录。

答案 1 :(得分:0)

在github上登录表单(以及其他网站)只是基于cookie的。

通常每次通过浏览器直接通过浏览器登录都是基于cookie的系统,只是因为没有必要这样做。

一点理论

每次您在网站中使用登录表单时,您都在调用API,不一定是供公众使用(因此私有 API)

当您将凭据放入登录表单并按下该登录按钮时,您的凭据将由服务器中的某些代码管理,允许您对该网站进行身份验证。

此处不需要整个OAuth开销,因为网站可以完全控制身份验证机制,并且不需要进行外部化。

为什么OAuth在这场比赛中有所不同?

OAuth是一个旨在将身份验证系统分布在不同服务/应用程序甚至来自不同供应商的系统。

在OAuth中涉及多个参与者:

  • 客户
  • 授权服务器
  • 资源提供者

在你的情况下,所有这3个演员都是网站本身,因此不需要像OAuth这样的解耦系统。