Oauth2 Spring安全资源服务器和独立身份验证服务器
各位!! 我是Oauth2的新手,对它有不同的处理方法 我有一个疑问。实际上,我正在使用Spring安全性构建一个提供者服务器,并且我有一个外部访问令牌提供者(Google和AWS Cognito) 我知道在代码授权流之后获取访问令牌的过程(这是我想要实现的)。我构建了一个Android应用程序,它可以获取代码并将其更改为访问令牌 我的问题是: 如何使用Spring安全性来访问服务器所拥有的受保护资源,从而验证发送到提供者服务器的令牌是否有效Oauth2 Spring安全资源服务器和独立身份验证服务器,spring,spring-security,oauth-2.0,jwt,aws-cognito,Spring,Spring Security,Oauth 2.0,Jwt,Aws Cognito,各位!! 我是Oauth2的新手,对它有不同的处理方法 我有一个疑问。实际上,我正在使用Spring安全性构建一个提供者服务器,并且我有一个外部访问令牌提供者(Google和AWS Cognito) 我知道在代码授权流之后获取访问令牌的过程(这是我想要实现的)。我构建了一个Android应用程序,它可以获取代码并将其更改为访问令牌 我的问题是: 如何使用Spring安全性来访问服务器所拥有的受保护资源,从而验证发送到提供者服务器的令牌是否有效 提前谢谢。我认为有两种选择,要么你自己获取公钥并验证
提前谢谢。我认为有两种选择,要么你自己获取公钥并验证令牌,要么他们有一个端点,你可以发送令牌并知道它是否有效 像这样的
GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(transport, jsonFactory)
// Specify the CLIENT_ID of the app that accesses the backend:
.setAudience(Collections.singletonList(CLIENT_ID))
// Or, if multiple clients access the backend:
//.setAudience(Arrays.asList(CLIENT_ID_1, CLIENT_ID_2, CLIENT_ID_3))
.build();
// (Receive idTokenString by HTTPS POST)
GoogleIdToken idToken = verifier.verify(idTokenString);
if (idToken != null) {
Payload payload = idToken.getPayload();
// Print user identifier
String userId = payload.getSubject();
System.out.println("User ID: " + userId);
// Get profile information from payload
String email = payload.getEmail();
boolean emailVerified = Boolean.valueOf(payload.getEmailVerified());
String name = (String) payload.get("name");
String pictureUrl = (String) payload.get("picture");
String locale = (String) payload.get("locale");
String familyName = (String) payload.get("family_name");
String givenName = (String) payload.get("given_name");
// Use or store profile information
// ...
} else {
System.out.println("Invalid ID token.");
}
链接: