Я работаю над приложением для Android, где мне нужно войти и зарегистрироваться. Я создал серверную часть, используя загрузочную среду Java. Регистрация работает хорошо, но я не могу войти. Как я могу решить? Код, который я написал, выглядит следующим образом:
Код сервера для регистрации:
@PostMapping("/register")
public Person addUser(@RequestBody Person user) {
user.setPassword(encoder.encode(user.getPassword()));
return userService.saveUser(user);
}
Код сервера для входа в систему:
@PostMapping("/login")
public UserDetails authenticate(@RequestBody Person principal) throws Exception {
return authService.authenticate(principal);
}
И это хорошо работает. Потому что, если я попытаюсь с почтальоном, я могу хорошо войти.
Это результат почтальона
Также регистрация на andorid работает также. Если я зарегистрирую пользователя с Android, он будет сохранен в моей БД, и с почтальоном я могу войти в систему с этим пользователем.
Это мой дб
Это мой andorid код для регистрации:
class HttpRequestTask extends AsyncTask<Void, Void, Person> {
@Override
protected Person doInBackground(Void... params) {
try {
final String url = "myurl/register";
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
Person person= new Person();
person.setNome(myname);
person.setCognome(myusername);
person.setUsername(mynickname);
person.setPassword(mypassword);
person.setProfileType(myprofileType);
return restTemplate.postForObject(url, person, Person.class);
}
catch(Exception e){
Log.e("MainActivity", e.getMessage(), e);
}
return null;
}
}
И это хорошо работает.
Это мой код Android для входа в систему:
class HttpRequestTask extends AsyncTask<Void, Void, Person> {
@Override
protected Person doInBackground(Void... params) {
try {
final String url = "myurl/login";
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
Person person= new Person();
person.setUsername(myusername);
person.setPassword(mypassword);
return restTemplate.postForObject(url, person, Person.class);
}
catch(Exception e){
Log.e("MainActivity", e.getMessage(), e);
}
return null;
}
}
Логин не работает.
Должен ли я использовать Spring boot для android?
У кого-нибудь есть пример?
Заранее спасибо!.