[authentication] 为什么当“隐式”流程运行良好时,OAuth2中存在“授权码”流?



0 Answers

隐式流程使得整个流程非常容易,但也不太安全
由于通常在浏览器中运行的JavaScript的客户端应用程序不太受信任,因此不会返回用于长期访问的刷新令牌。
您应该将此流程用于需要对用户数据进行临时访问(几个小时)的应用程序。
将访问令牌返回给JavaScript客户端也意味着您的基于浏览器的应用程序需要格外小心 - 考虑可能会将访问令牌泄露给其他系统的XSS攻击。

https://labs.hybris.com/2012/06/05/oauth2-the-implicit-flow-aka-as-the-client-side-flow

Question

在“隐式”流程中,在资源所有者(即用户)授予访问权限后,客户端(可能是浏览器)将获得访问令牌。

然而,使用“授权码”流程,客户端(通常是Web服务器)在资源所有者(即用户)授予访问权限后才会获得授权码。 使用该授权码,客户端再次调用API,将client_id和client_secret与授权码一起传递,以获取访问令牌。 这里都有很好的描述

两个流程都具有完全相同的结果:访问令牌。 但是,“隐式”流程要简单得多。

问题: 为什么要打扰“授权码”流程,当“隐式”流程接缝良好时? 为什么不为Web服务器使用“隐式”?

这对提供者和客户来说都是更多的工作。






Related