我正在尝试从客户端向服务器发送新用户+带有此代码的验证ID
fetch('http://localhost:8080/users/student', {
method: 'POST',
body: JSON.stringify({"email":email, "firstName": firstName, "lastName": lastName,
"idToken": idToken}),
headers: {
'content-type': 'application/json'
},
}).then(response => { return response.json();
}).then(data => {
console.log(data);
});
而我控制器上的方法是
@RequestMapping(value = "/student", method = RequestMethod.POST)
private User createStudent(@RequestBody User user) {
user.setId(null);
user.setUserType(UserType.STUDENT);
//verify the user and create custom role
return userService.save(user);
}
问题是我无法使用user.idToken访问验证令牌,因为idToken不是User属性,那么如何分别接收带有user属性和idToken的正文?
答案 0 :(得分:1)
您可以选择以下方法之一:
User
类扩展为类似
UserWithToken
,其中将包含来自
User
类,还有idToken
。QueryParam
并将其传递到URL中。
例如:/student?idToken=your-token-id
。答案 1 :(得分:1)
您可以创建一个扩展User
类的类:
public class UserDto extends User {
private String idToken;
// getter / setter
}
因此,您可以将此对象传递给您的方法:
private User createStudent(@RequestBody UserDto user) {
// user.getIdToken(); available
}
如果需要返回令牌,可以将返回类型更改为UserDto
。