我有一个 jwt token ,是我在用户登录后从 cognito 检索到的。
我的应用程序中有一个特定的 api 端点,我希望只有具有有效 jwt 的用户才能访问该端点。我尝试查看网络上的各种资源,但我什么都看不懂。我是 jwt 概念的新手。
PS 我有一个 Java 应用程序 (spring boot)。如果有人能详细描述验证我的 jwt 需要遵循的步骤,我将不胜感激。如果可能,请提供代码。
@CrossOrigin
@RequestMapping(value= "/login", method=RequestMethod.POST,consumes="application/json")
@ResponseBody
public String authenticate(@RequestBody SignInDTO signInDetails)
{
//boolean isAuthenticated=false;
CognitoHelper cognitoHelper=new CognitoHelper();
String authResult=cognitoHelper.ValidateUser(signInDetails.getEmailId(), signInDetails.getPassword());
.....
.....
.....
authResult 是我从 cognito 获得的 jwt。在此之后,我完全不知道需要做什么。
最佳答案
Spring Security 5.1 引入了对此的支持,因此它更容易实现。参见 https://docs.spring.io/spring-security/site/docs/current/reference/html/jc.html#oauth2resourceserver
基本上:
- 按照 https://docs.spring.io/spring-security/site/docs/current/reference/html/jc.html#dependencies 中的说明添加依赖项
- 按照 https://docs.spring.io/spring-security/site/docs/current/reference/html5/#oauth2resourceserver-jwt-minimalconfiguration 中的说明添加 yml 配置.对于 cognito,请使用以下网址:
https://cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>
- 您可能需要按照 https://docs.spring.io/spring-security/site/docs/current/reference/html/jc.html#oauth2resourceserver-sansboot 中的说明编辑您的安全配置
关于java - 如何验证从 Cognito 获得的 jwt token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49488538/