后端创建注册JWT的用户



我正在尝试用Springboot和Gradle创建一个restful web应用程序。我使用JWT进行身份验证。当用户登录时,后端会为该用户创建一个用户令牌。每当他打开另一个页面来检索他的数据时,他都会使用这个令牌。

我想做的是创建一个注册页面,但问题是,如果没有Bearer令牌,我就无法将信息发送到后端。我如何发送一个post方法来创建一个用户,而不需要对这一个post操作进行身份验证?

为存在的用户生成令牌

@PostMapping(value = "${jwt.get.token.uri}")
public ResponseEntity<?> createAuthenticationToken(@RequestBody JwtTokenRequest authenticationRequest)
throws AuthenticationException {
authenticate(authenticationRequest.getUsername(), authenticationRequest.getPassword());
UserDetails userDetails = jwtInMemoryUserDetailsService.loadUserByUsername(authenticationRequest.getUsername());
final String token = jwtTokenUtil.generateToken(userDetails);
return ResponseEntity.ok(new JwtTokenResponse(token));
}

我想调用什么来在数据库中创建用户:(想在未经授权的情况下进行此POST(

@PostMapping(value = "/signup")
public ResponseEntity<User> createUser(@RequestBody User user){
HBMUserService HBMuserService = new HBMUserService();
User createdUser = HBMuserService.saveUser(user);
return new ResponseEntity<>(createdUser, HttpStatus.OK);
}

我的应用程序属性:

jwt.signing.key.secret=SecretKey
jwt.get.token.uri=/authenticate
jwt.refresh.token.uri=/refresh
jwt.http.request.header=Authorization
jwt.token.expiration.in.seconds=604800

我发现我的JWT在哪里忽略了我的Auth路径进行登录,并在那里添加了我的注册路径。

.antMatchers(
HttpMethod.POST,
authenticationPath,
"/signup"
)

最新更新