OAuth 授权调用重定向
OAuth authorize call redirection
我知道一旦您发出授权调用,授权服务器将重定向到随授权代码一起提供的回调 url。获得授权码后,谁应该执行令牌调用?是来自 UI 还是来自后端?请解释这背后的逻辑。
如果是后端,我如何跟随重定向到后端?
我是不是误解了 OAuth 的概念?任何事情都受到高度赞赏。谢谢。
我想这可以通过两种方式完成。但是对于 authorization code grant
流,我建议你使用后端。在可用的 OAuth 流程中,implicit grant
通常用于单页应用程序。因此,这是通过浏览器本身完成的。但现在他们更喜欢使用 SPA 的授权码。
调用令牌端点时,您将需要 client_secret
等机密信息。所以使用后端获取令牌比使用前端更好。
OAuth2 授权代码流应在您的后端进行初始化。您的后端还应该处理来自授权服务器(包含授权代码)的重定向。您可能需要一个客户端密码来访问令牌端点,您必须将其保存在后端,因为它不可能在浏览器中保持安全。
您不需要遵循重定向。重定向总是会导致某些浏览器 -> 服务器(后端)调用,因为浏览器会处理重定向并创建 HTTP 请求。
有不同的OAuth2 flows designed for various use cases. Which one to use, it very much depends on how you want to use it and what your infrastructure looks like (you can formulate a new question when it gets more clear to you). If you want to learn more about OAuth2, I would suggest you to read its RFC. It's well written, easy to read and doesn't omit any important details. There is also an extension of the OAuth2 protocol called OpenID Connect设计更多用于身份验证。
我知道一旦您发出授权调用,授权服务器将重定向到随授权代码一起提供的回调 url。获得授权码后,谁应该执行令牌调用?是来自 UI 还是来自后端?请解释这背后的逻辑。
如果是后端,我如何跟随重定向到后端?
我是不是误解了 OAuth 的概念?任何事情都受到高度赞赏。谢谢。
我想这可以通过两种方式完成。但是对于 authorization code grant
流,我建议你使用后端。在可用的 OAuth 流程中,implicit grant
通常用于单页应用程序。因此,这是通过浏览器本身完成的。但现在他们更喜欢使用 SPA 的授权码。
调用令牌端点时,您将需要 client_secret
等机密信息。所以使用后端获取令牌比使用前端更好。
OAuth2 授权代码流应在您的后端进行初始化。您的后端还应该处理来自授权服务器(包含授权代码)的重定向。您可能需要一个客户端密码来访问令牌端点,您必须将其保存在后端,因为它不可能在浏览器中保持安全。
您不需要遵循重定向。重定向总是会导致某些浏览器 -> 服务器(后端)调用,因为浏览器会处理重定向并创建 HTTP 请求。
有不同的OAuth2 flows designed for various use cases. Which one to use, it very much depends on how you want to use it and what your infrastructure looks like (you can formulate a new question when it gets more clear to you). If you want to learn more about OAuth2, I would suggest you to read its RFC. It's well written, easy to read and doesn't omit any important details. There is also an extension of the OAuth2 protocol called OpenID Connect设计更多用于身份验证。