Plunker身份验证如何运作

时间:2015-09-21 14:16:20

标签: authentication github single-sign-on plunker

全部。如果我的问题不在话题或者是一个愚蠢的问题,请原谅我。 我真的想知道如何为Plunker实现像GitHub这样的身份验证机制。 在我的项目中。我想我有同样的情况。 我有一些像Plunker这样的网站。 我想为所有其他网站(如GitHub)实施SSO中心授权网站或服务。 当我点击Plunker中的按钮Sign in with GitHub时。该网站将使用网址打开新窗口 https://github.com/login?return_to=%2Flogin%2Foauth%2Fauthorize%3Fclient_id%3D7e377e5657c4d5c332db%26redirect_uri%3Dhttp%253A%252F%252Fplnkr.co%252Fauth%252Fgithub%26scope%3Dgist

当我成功登录GitHub时。然后,Plunker将使用我刚刚在GitHub中使用的经过身份验证的用户登录。

我的问题是我不知道GitHub和Plunker之间的身份验证是如何工作的。 有人可以告诉我一些关于它的事吗?它会受到关注。感谢。

2 个答案:

答案 0 :(得分:1)

Plunker的“使用GitHub登录”按钮使用OAuth2,这是一种开放的标准。这是相同的技术used by Google for their sign-in with Google functionality,以及许多其他提供商。

这是GitHub's documentation for adding "log in with OAuth" to your site

创建自己的OAuth提供程序是一项重要任务,而且如果不仔细权衡,您可能不想解决这个问题。如果您确实选择沿着这条路走下去,那么您可能希望将现有的库用于您的语言或选择堆栈,例如:也许来自this list的东西。如果您只打算构建OAuth客户端,这也是一个很好的建议。

答案 1 :(得分:0)

正如所指出的,Plunkr的登录过程似乎正在使用Github的OAuth2,但设法在客户端上将其关闭,而不使用window.open和postMessage重定向/重新加载。可以找到该技术的详细描述heredemo code看起来相对无痛。

Gatekeeper项目似乎是一个更优秀的实现(使用node.js),并且有一个关于使用它here进行客户端身份验证的详细教程。