像 Facebook 一样的 OAuth 身份验证

Posted

技术标签:

【中文标题】像 Facebook 一样的 OAuth 身份验证【英文标题】:OAuth authentication like Facebook 【发布时间】:2012-05-20 17:13:30 【问题描述】:

我需要通过 OAuth 通过 javascript 对某些网站(例如 flickr)进行身份验证,并且我希望获得类似于 Facebook 登录按钮的体验。当您单击登录按钮时,会打开一个弹出窗口,您进行身份验证,然后关闭弹出窗口并引发登录按钮的 onlogin 事件。

是否有任何 Javascript 库为 OAuth 实现此行为?

【问题讨论】:

【参考方案1】:

这是 OAuth 2.0 的一个功能,它指定了一个客户端流程来促进这一点。

规范为here,Google 对其的实现描述为here。

对此的支持包含在 google-api-javascript-client(用于 Google API 和登录)中,并且有一个通用库可以与名为 gwt-oauth2 的受支持提供程序一起使用——它是用 GWT 编写的,但也可以在标准中使用JavaScript 环境。

编辑:Microsoft's Live Connect library 似乎也支持这种风格的 OAuth 2.0。

不幸的是,Flickr 似乎不支持此功能,因为它only seems to support OAuth 1.0a。

但也有一些流行的提供商确实支持客户端 OAuth 2.0 流程:

谷歌 脸书 四方 Instagram 每日动态 Windows Live

我想,您可以运行自己的服务器向 Flickr 发出 OAuth 1.0a 请求并将 OAuth 2.0 访问令牌发送回 JavaScript 客户端。

【讨论】:

【参考方案2】:

我确定janrain 使用 node.js 为多个站点提供身份验证,我会看一看。也试试这个example

【讨论】:

我已经使用 janrain RPXnow 产品和 JavaScript 完成了一些成功的测试。但是,我们将其与本地服务器端生成的令牌相结合,以尝试更好地保护它。

以上是关于像 Facebook 一样的 OAuth 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

使用 Facebook OAuth 进行 Apache Shiro 身份验证

OAuth2“社交登录”流程(允许通过 Facebook/Twitter 进行 OAuth2 身份验证):是不是有任何示例/文献?

Spring Boot OAuth2 - 使用本地用户数据库向 Facebook 进行身份验证

ASP.net core web api:使用 Facebook/Google OAuth 访问令牌进行身份验证

使用 facebook 登录并使用 oauth 2.0 对 REST api 调用进行身份验证

如何从 facebook/google/... oauth2 身份验证在 Spring (Boot) 中为单页应用程序派生自定义登录令牌?