API Rejestracji/Logowania

0

Dobry wieczór,
od wczoraj rana przeszukuję cały internet szukając informacji na temat tworzenia restowego api w przypadku rejestracji lub logowania by mieć do tych informacji dostęp z poziomu JSON. Mógłby mi ktoś wytłumaczyć z przykładami jak wyglądałaby taka metoda w Springu(pomijajac encje, jsonignore do passów itp., sama metoda @PostMapping)?,
Albo może macie jakies fajne, aktualne tutoriale do tego ale bez uzycia thymeleafa czy innych szablonów, chodzi mi stricte o mappowanie informacji z rejestracji na json by stworzyc z nich widok w np vue.

Na tą chwilę wymyśliłem coś takiego, gdzie metodą getInto() dodajemy w formacie JSON w Postmanie nowych użytkowników(ma to prawo zadzialac?),


@RestController
@RequestMapping("/api/persons")
public class PersonController {

    PersonRepository personRepository;

    @Autowired
    public PersonController(PersonRepository personRepository){
        this.personRepository = personRepository;
    }

    @GetMapping("/")
    public String getAll(){
        List<Person> person = personRepository.findAll();
        return "person";
    }

    @GetMapping("/{id}")
    public Optional<Person> getPerson(@PathVariable Long id){
        return personRepository.findById(id);
    }

    @GetMapping("/{name}")
    public List<Person> getName(@PathVariable String name){
        return personRepository.findByName(name);
    }

    @PostMapping
    public void getInto(@RequestBody Person person){
        personRepository.save(person);
    }
}

Kolejne pytanie, przepraszam za mnogość,

Powiedzmy, że wcześniej wklejona klasa RestControllera działa, jak wyglądałaby klasa SpringSecurity by zabezpieczyć określone strony przed dostępem bez logowania?, Odnosimy się do np.


    http
		.authorizeRequests()
			.antMatchers("/").permitAll()
			.anyRequest().authenticated()
		.and()
		.formLogin()
                .loginPage("/login")

W jaki sposób front-endowiec będzie wiedział jaki określić URL logowania żeby spring security na nim funkcjonował?, on jest zmuszony odnieść się do informacji podanych przez back-endowca, czyli musi zrobić formularz pod adresem np login.html?

Dziekuje za wszystkie pomocne komentarze,

pozdrawiam

0

Po co pytasz jak to robić a potem wklejasz kompletne rozwiązanie swojego problemu?

0

Nikt nie pomoże rozjaśnić mi trochę obraz? :(

0

1)Nie wiem po co endpoint /persons który zwraca wszystkie encje
2)Raczej /users nie user
3)Nie powinienes zwracac/wysyłać encji JPA bezpośrednio tylko DTOsy
4)Powineneś hashować hasła

1 użytkowników online, w tym zalogowanych: 0, gości: 1