Ignore:
Timestamp:
03/05/24 14:15:44 (15 months ago)
Author:
Aleksandar Panovski <apano77@…>
Branches:
main
Children:
db39d9e
Parents:
a2c6c2b
Message:

Authorization layer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/com/example/rezevirajmasa/demo/web/rest/AuthController.java

    ra2c6c2b r5a9c93b  
    11package com.example.rezevirajmasa.demo.web.rest;
    22
     3import com.example.rezevirajmasa.demo.config.UserAuthProvider;
     4import com.example.rezevirajmasa.demo.dto.CredentialsDto;
     5import com.example.rezevirajmasa.demo.dto.SignUpDto;
     6import com.example.rezevirajmasa.demo.dto.UserDto;
    37import com.example.rezevirajmasa.demo.model.Customer;
    48import com.example.rezevirajmasa.demo.service.CustomerService;
     9import com.example.rezevirajmasa.demo.service.UserService;
     10import lombok.RequiredArgsConstructor;
    511import org.apache.coyote.Response;
    612import org.springframework.beans.factory.annotation.Autowired;
     
    1420import org.springframework.web.bind.annotation.RestController;
    1521
    16 @CrossOrigin(origins = "http://localhost:3000/")
     22import java.net.URI;
     23
     24@RequiredArgsConstructor
    1725@RestController
    1826public class AuthController {
    19     private final CustomerService customerService;
    20     private final PasswordEncoder passwordEncoder;
    21 
    22     public AuthController(CustomerService customerService, PasswordEncoder passwordEncoder) {
    23         this.customerService = customerService;
    24         this.passwordEncoder = passwordEncoder;
     27    private final UserService userService;
     28    private final UserAuthProvider userAuthProvider;
     29    @PostMapping("/api/login")
     30    public ResponseEntity<UserDto> login(@RequestBody CredentialsDto credentialsDto) {
     31        UserDto user = userService.login(credentialsDto);
     32        user.setToken(userAuthProvider.createToken(user.getEmail()));
     33        return ResponseEntity.ok(user);
    2534    }
    2635
    27     @PostMapping("/api/login")
    28     public ResponseEntity<String> login(@RequestBody Customer customer) {
    29         Customer exisitngCustomer = customerService.findByEmail(customer.getEmail());
    30 
    31         if(passwordEncoder.matches(customer.getPassword(), exisitngCustomer.getPassword())) {
    32             String token = generateToken(exisitngCustomer);
    33             return ResponseEntity.ok(token);
    34         } else {
    35             return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build();
    36         }
    37     }
    38 
    39     private String generateToken(Customer customer) {
    40         // Implement your token generation logic here
    41         return "dummy_token";
     36    @PostMapping("/api/register")
     37    public ResponseEntity<UserDto> register(@RequestBody SignUpDto signUpDto) {
     38        UserDto user = userService.register(signUpDto);
     39        user.setToken(userAuthProvider.createToken(user.getEmail()));
     40        return ResponseEntity.created(URI.create("/users/" + user.getId()))
     41                .body(user);
    4242    }
    4343}
Note: See TracChangeset for help on using the changeset viewer.