java - 是否可以在没有 Java 网络浏览器的情况下在 OAuth 2.0 中获取 authorization_code?

标签 java oauth-2.0

据我了解,在授权代码流程中,我们需要获取授权代码并在之后使用它来获取 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/

相关文章:

authentication - gRPC中如何使用Oauth2进行用户认证

java - OAuth token 在浏览器上未经授权

java - 返回上一个 Activity

java - 如何制作JPanel的背景渐变

Linux下Java编译错误: cannot find symbol "javax\mail\session"

asp.net-core - AAD B2C 的客户端凭据流

api - 将 OAuth 2.0 身份验证添加到 RESTful API

azure - OAuth 2.0 {"error_description":"Invalid issuer or signature."} 在 postman 中

java - 要传递给 spring 应用程序上下文的用户输入参数

java - 如何在多维数组Java中拥有不同的类型