Django 在处理基于web的前端时,OAuth2将使用哪种授权

Django 在处理基于web的前端时,OAuth2将使用哪种授权,django,oauth-2.0,Django,Oauth 2.0,我有一个运行Django 1.7的后端和一个使用Bootstrap单独开发的前端。前端通过我想用OAuth2保护的RESTAPI与后端对话 问题是:我应该使用哪种补助金类型?我信任在前端工作的人员,但这并不意味着我信任Javascript:-)我无法决定是选择隐式授权还是基于密码的资源所有者 有经验的建议吗?特别是在使用与前端不在同一域或服务器上的API时,通常最好使用OAuth 2的web应用程序流之类的东西。这通常称为,并使用令牌的授予类型 这样,您就不必担心通过网络发送凭据,就像您需要通过

我有一个运行Django 1.7的后端和一个使用Bootstrap单独开发的前端。前端通过我想用OAuth2保护的RESTAPI与后端对话

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


有经验的建议吗?

特别是在使用与前端不在同一域或服务器上的API时,通常最好使用OAuth 2的web应用程序流之类的东西。这通常称为,并使用
令牌的
授予类型

这样,您就不必担心通过网络发送凭据,就像您需要通过网络发送凭据一样。按照同样的思路,您也不必处理为应用程序隐藏私钥的问题

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


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

我只是不明白如何在这种类型的授权中区分两个不同的用户(隐式)。在任何情况下都不会要求最终用户提供其凭据(用户名和密码),因此如何使用隐式授权来保护API端点,例如
example.com/API/account details/
?通过隐式授权,客户端(API消费者,例如移动应用程序)应将用户(移动应用程序用户)发送到您的网站,在浏览器中显示授权页面。一旦用户登录并授权应用程序,应用程序将获得要使用的访问令牌。因此,当且仅当授权端点(由OAuth2服务器公开)需要常规身份验证(如DRF中的权限类
rest\u framework.permissions.IsAuthenticated
)时,此操作才有效。通过这种方式,登录到授权端点的用户必须在授予对客户端的访问权限之前登录。但是,是否总是这样(auth端点需要身份验证,特别是在
django oauth toolkit
中)?当我们在Django中设置了
OAuth2Backend
时,身份验证机制是如何工作的?关键是我想摆脱默认的会话身份验证,因为我在前端和后端的不同域上工作。