处理基于Web的前端时使用哪个OAuth2

时间:2014-12-19 17:49:32

标签: django oauth-2.0

我有一个运行Django 1.7的后端和一个使用Bootstrap单独开发的前端。前端通过REST API与后端进行通信,我想用OAuth2保护它。

问题是:我应该使用哪种授权类型?我相信在前端工作的人,但这并不意味着我相信Javascript :-)我无法决定是否应该选择隐式授权或资源所有者密码。

有经验的建议吗?

1 个答案:

答案 0 :(得分:1)

特别是在使用与前端不在同一域或服务器上的API时,通常最好使用类似OAuth 2的Web应用程序流程。这通常称为implicit grant ,并使用grant_type的{​​{1}}。

通过这种方式,您无需担心通过线路发送凭据,就像您需要resource owner password credentials grant一样。同样,您也不必处理隐藏authorization code grant的私钥。

使用隐式授权,只有OAuth令牌必须存储在本地计算机上。这应该更好,因为在令牌变为公共或其他强制使其无效的情况下,令牌应该能够快速撤销。在发出授权请求时,用户应该在API服务器上登录,但大多数OAuth提供程序都支持可以使用的自定义登录页面。

使用密码凭据grant,用户名和密码都必须存储在本地计算机上,这需要您额外保护它们。如果需要,它们也很难撤销。