Как войти с помощью @RestController и отправить объект в angularjs

0

У меня есть некоторые проблемы с выяснением того, как создать форму входа в angularjs, используя springboot.

Я могу зарегистрировать пользователя и отправить данные в базу данных, но проблемы начинаются, когда я хочу войти в систему.

в 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"}

Но теперь у меня есть следующие проблемы и вопросы:

Как я могу проверить, совпадает ли имя пользователя и пароль с именем пользователя и паролем json, перейдя на api/authenticate? (без {id})

могу ли я скрыть этот json от пользователей?

Это безопасно?

как теперь будут угловые все пользовательские свойства? (я предлагаю, я могу получить это из json)

какие-либо про советы о том, как это решить?

  • 0
    Подумайте об использовании пружинной безопасности, это будет мудрым выбором. Еще отправил имя пользователя / пароль в контроллер, чтобы подтвердить и вернуть UserId и authstatus в ответ и управлять им в сеансе. Здесь вы должны обрабатывать все самостоятельно, включая Logoit, Authorization и т. Д.
  • 0
    Я знаю, как я могу создать пользовательский логин с JSP с Spring Security. Но как мне справиться с этим с angularjs. ? Это действительно было бы идеальным решением. Но как мне начать с этого. ?
Показать ещё 1 комментарий
Теги:
spring

1 ответ

1
Лучший ответ

Из 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 payload (JSON object)

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

Пожалуйста, обратитесь

  • 0
    Сначала я посмотрю на то, что сказал @ M4ver1k, и сначала рассмотрим Spring Security и Angular JS. Но пометьте свой вопрос как решить, потому что это было решением этой проблемы. Спасибо за информацию.
  • 0
    @ user3475722: Добро пожаловать. Удачного кодирования ....

Ещё вопросы

Сообщество Overcoder
Наверх
Меню