我正在使用Spring Boot为我们的移动应用程序开发一些RESTful服务。我通过用户名和密码注册成功实现了Oauth2身份验证。用户可以使用用户名和密码进行身份验证。我们的客户也希望使用自定义令牌进行身份验证。他们有一个Web服务,您发送令牌和响应是真是假。
我的第一个想法是,我可以编写像 / custom-login 这样的服务,该服务接受自定义令牌。在我的服务中,我可以使用外部服务检查此令牌,如果它有效,我调用oauth2身份验证并返回oauth2身份验证响应。
如何实现自定义身份验证oauth2?
答案 0 :(得分:1)
OAuth2.0规范允许自定义授权类型
因此,您的auth服务器可以创建自定义授权类型
例如:假设您希望使用Google访问令牌向Google进行身份验证,因此您将创建名为 google_token 的新grant_type
现在,当您的用户想要使用Google访问令牌进行身份验证时,他们会像
一样通过grant_type=google_token&client_id=clientId&client_secret=secret&google_token=google-access-token
然后,您的身份验证服务器可以通过Google验证访问令牌,并可选择验证客户端是否已发出等,一旦验证,它就可以返回您自己的访问令牌
这适用于第三方授权服务器,因此您可以创建多个自定义授权类型