gpt4 book ai didi

java - 如何使用@RestController登录并将对象发送到angularjs

转载 作者:行者123 更新时间:2023-12-01 11:08:07 27 4
gpt4 key购买 nike

我在弄清楚如何使用 springboot 在 angularjs 中创建登录表单时遇到了一些麻烦。

我可以注册用户并将数据发送到数据库,但当我想登录时问题就开始了。

在 angularjs 中我有一个这样的函数

  function Login(username, password, callback) {


$http.post('/api/authenticate', { username: username, password: password })
.success(function (response) {
callback(response);
});

}

我设法做的事情,但可能是不对的:

@RequestMapping(value = "/authenticate/{id}",method = RequestMethod.GET)
public User getUser(@PathVariable Integer id) {

return repo.findOne(id);
}

这给了我以下 json

{"id":2,"username":"jdoe","password":"$2a$10$5hgIyQr.K9wb8cXEyWGbROAU.rkYzd19vP7ajHpwp1KUYdShfcPn.","lastname":"doe","firstname":"john","customfield":"Hello there"}

但现在我有以下问题和疑问:

如何通过 api/authenticate 检查用户名和密码是否等于 json 的用户名和密码? (没有 {id})

我可以向用户隐藏这个 json 吗?

这安全吗?

现在 Angular 将如何处理所有用户属性? (我建议我可以从 json 中检索它)

有关于如何解决这个问题的专业提示吗?

最佳答案

从 AngularJS 中,您正在调用 HTTP POST 方法,而在 Spring 端您已声明为 HTTP GET,这是错误的。

正确的请求映射是

 @RequestMapping(value = "/api/authenticate",method = RequestMethod.POST, consumes = "application/json")
@ResponseBody
public User getUser(@RequestBody User user) {
//here request body contains User POJO object's payload (JSON object)

//You are getting username from JSON,
//so you need to update your call to findOne method
return repo.findOne(user.getUserName());
}

请引用

关于java - 如何使用@RestController登录并将对象发送到angularjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32713157/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com