据我了解,在授权代码流程中,我们需要获取授权代码并在之后使用它来获取 token 。只有当用户确认指定访问权限时,我们才能获得此代码。之后浏览器将我们重定向到 redirect_uri 并且响应将包含授权代码作为参数。所以,问题是:是否可以在没有浏览器或任何自制 UI 的情况下获得此授权码?我们能否在正确请求后在应用程序中获取它,例如 https://mysite.tuz/authorize
?
最佳答案
当您使用授权代码流时,客户端需要用户代理(即浏览器或移动应用程序)从授权服务器获取授权代码。
使用授权码的全部目的是它可以通过用户的网络浏览器(用户代理)传递,而不是直接通过网络浏览器(用户代理)传递访问 token ,这是不希望的。使用授权代码,客户端然后可以直接从授权服务器检索访问 token 。
因此需要用户代理获取授权码,并充当客户端和授权服务器之间的中介。
如果您不需要浏览器,那么授权代码流程可能不是正确的选择。 OAuth 2.0 支持几种不同的授权,即检索访问 token 的方式。决定哪一个适合您的案例主要取决于您客户的类型。
这可能会帮助您决定使用哪个流程 https://auth0.com/docs/api-auth/which-oauth-flow-to-use
关于java - 是否可以在没有 Java 网络浏览器的情况下在 OAuth 2.0 中获取 authorization_code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48821666/