如何实现真正无服务器的oauth

时间:2015-03-12 15:30:47

标签: javascript authentication oauth

有没有办法使用Web服务使用Oauth 2进行身份验证,而无需服务器的任何支持?即,我希望auth代码和auth令牌的交换完全发生在用户的浏览器和Web服务之间,没有涉及任何其他服务器。

我在网络浏览器中运行了一个javascript客户端,需要使用Oauth通过网络服务(例如dropbox或google)进行身份验证。

由于Web服务在身份验证后返回的访问令牌或代码是重定向形式,因此必须转到redirect_uri指向的服务器。在桌面客户端上,我可以将重定向uri设置为http://localhost:3000并从Web服务中获取响应。

当客户端是在浏览器中运行的javascript脚本时,我无法在localhost:3000上打开服务器,让我依赖互联网上的另一台服务器来检索代码或令牌。

1 个答案:

答案 0 :(得分:0)

有一个密码'在Oauth2中授予类型,可以在不需要重定向uri的情况下使用。

此处描述:https://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified#others

但缺点是客户端应用程序需要知道用户名和密码,因此可能并不适合所有情况。