OAuth授权呼叫重定向

时间:2018-12-06 15:57:03

标签: oauth oauth-2.0 frontend backend authorize

我知道,一旦发出授权调用,授权服务器将重定向到auth代码随附的回调URL。获得身份验证代码后,谁应该执行令牌调用?是从UI还是从后端?请解释其背后的逻辑。

如果是后端,如何跟踪重定向到后端?

我是否一起误解了OAuth概念?一切都受到高度赞赏。谢谢。

2 个答案:

答案 0 :(得分:1)

我想这可以通过两种方式完成。但是对于[tp = std::make_tuple(std::move(args)...)](auto lmb) mutable { ... }; ^^^^^^^ 流程,我建议您使用后端。在可用的OAuth流中,authorization code grant通常用于单页应用程序。因此,这是通过浏览器本身完成的。但是如今,他们更喜欢对SPA使用身份验证代码。 调用令牌端点时,您将需要诸如implicit grant之类的机密信息。因此,最好使用后端来获取令牌,而不是使用前端。

答案 1 :(得分:1)

OAuth2授权代码流应在您的后端初始化。您的后端还应该处理来自授权服务器(包含身份验证代码)的重定向。您可能需要一个客户端密钥来访问令牌端点,必须将其保留在后端,因为无法在浏览器中确保其安全。

您不需要遵循重定向。重定向总是会引起一些浏览器->服务器(后端)调用,因为浏览器会通过创建HTTP请求来处理重定向。

针对各种用例设计了不同的OAuth2 flows。使用哪个,很大程度上取决于您要使用它的方式以及您的基础架构是什么样的(当您对它更加清楚时可以提出一个新问题)。如果您想了解有关OAuth2的更多信息,建议您阅读其RFC。它写得很好,易于阅读,并且不忽略任何重要细节。 OAuth2协议还有一个扩展,名为OpenID Connect,专为身份验证而设计。