RESTful 服务中的自定义手动 Oauth2 身份验证

Custom Manual Oauth2 Authentication at RESTful Service

我正在使用 Spring Boot 为我们的移动应用程序开发一些 RESTful 服务。我使用用户名和密码通过我们的注册成功实施了 Oauth2 身份验证。用户可以使用用户名和密码进行身份验证。我们的客户也希望使用他们的自定义令牌进行身份验证。他们有一个 Web 服务,您可以发送令牌并响应是真还是假。

我的第一个想法是,我可以编写类似 /custom-login 的服务,并且该服务接受自定义令牌。在我的服务中,我可以使用外部服务检查此令牌,如果它有效,我将调用 oauth2 身份验证和 return oauth2 身份验证响应。

如何实现自定义身份验证 oauth2?

OAuth2.0 规范允许自定义授权类型,

因此您的授权服务器可以创建自定义授权类型,

例如:假设您想要使用 Google 访问令牌通过 Google 进行身份验证,因此您将创建名为 google_token 的新 grant_type

所以现在当您的用户想要使用 Google 访问令牌进行身份验证时,他们将通过

grant_type=google_token&client_id=clientId&client_secret=secret&google_token=google-access-token

然后您的身份验证服务器可以使用 Google 验证访问令牌,并可选择验证客户端颁发给等,一旦验证,它可以 return 您自己的访问令牌

这适用于第三方身份验证服务器,因此您可以创建多种自定义授权类型