accept email on login
This commit is contained in:
@@ -143,11 +143,16 @@ public class AuthController {
|
|||||||
@PostMapping("/login")
|
@PostMapping("/login")
|
||||||
public ResponseEntity<LoginResponse> login(@Valid @RequestBody LoginRequest request) {
|
public ResponseEntity<LoginResponse> login(@Valid @RequestBody LoginRequest request) {
|
||||||
try {
|
try {
|
||||||
|
String identifier = request.getUsername();
|
||||||
|
String resolvedUsername = identifier != null && identifier.contains("@")
|
||||||
|
? userRepository.findByEmail(identifier).map(User::getUsername).orElse(identifier)
|
||||||
|
: identifier;
|
||||||
|
|
||||||
authenticationManager.authenticate(
|
authenticationManager.authenticate(
|
||||||
new UsernamePasswordAuthenticationToken(request.getUsername(), request.getPassword())
|
new UsernamePasswordAuthenticationToken(resolvedUsername, request.getPassword())
|
||||||
);
|
);
|
||||||
|
|
||||||
User user = userRepository.findByUsername(request.getUsername())
|
User user = userRepository.findByUsername(resolvedUsername)
|
||||||
.orElseThrow(() -> new UsernameNotFoundException("User not found"));
|
.orElseThrow(() -> new UsernameNotFoundException("User not found"));
|
||||||
|
|
||||||
String token = jwtUtil.generateToken(user);
|
String token = jwtUtil.generateToken(user);
|
||||||
|
|||||||
Reference in New Issue
Block a user