0

全部。如果我的问题离题或愚蠢的问题,请原谅我。我真的很想知道如何为 Plunker 实现像 GitHub 这样的身份验证机制。在我的项目中。我想我有同样的情况。我有一些网站,比如 Plunker。我想为所有其他网站(如 GitHub)实施 SSO 中心认证网站或服务。当我单击Sign in with GitHubPlunker 中的按钮时。该网站将使用 url 打开新窗口 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 之间的身份验证是如何工作的。有人可以告诉我一些关于它的事情吗?它将被应用。谢谢。

4

2 回答 2

1

Plunker 的“使用 GitHub 登录”按钮使用OAuth2,这是此类事情的开放标准。这与 Google以及许多其他提供商用于登录 Google 功能的技术相同。

这是GitHub 的文档,用于将“使用 OAuth 登录”添加到您的站点

创建您自己的 OAuth 提供程序是一项重大任务,如果不仔细权衡,您可能不想解决这个问题。如果您确实选择走这条路,您可能希望使用现有库作为您选择的语言或堆栈,例如可能来自此列表的内容。如果您只打算构建 OAuth 客户端,这也是一个很好的建议。

于 2015-09-21T15:57:28.453 回答
0

正如所指出的,Plunkr 的登录过程似乎正在使用 Github 的 OAuth2,但设法在客户端上将其关闭,而无需使用 window.open 和postMessage进行重定向/重新加载。可以在此处找到该技术的详细说明。演示代码看起来相对轻松。

Gatekeeper项目似乎是该想法的更完善的实现(使用 node.js),并且这里有一个关于使用它进行客户端身份验证的详细教程

于 2016-07-27T16:46:28.473 回答