По сути, 3 таблицы простираются от пользователей, но я не понимаю, как я могу сделать так, чтобы вход в систему, скажем, для клиента, заполнял данные пользователя и генерировал jwt, а также заполняет данные в клиентской таблице в базе данных.
это мой код для входа пользователя
Код: Выделить всё
package com.ApiRestfulBackendVet.ApiRestfulBackendVet.Auth;
import com.ApiRestfulBackendVet.ApiRestfulBackendVet.user.role;
import com.ApiRestfulBackendVet.ApiRestfulBackendVet.user.user;
import lombok.RequiredArgsConstructor;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Service;
import com.ApiRestfulBackendVet.ApiRestfulBackendVet.Jwt.jwtService;
import com.ApiRestfulBackendVet.ApiRestfulBackendVet.user.userRepository;
import com.ApiRestfulBackendVet.ApiRestfulBackendVet.Config.ApplicationConfig;
import org.springframework.security.crypto.password.PasswordEncoder;
import com.ApiRestfulBackendVet.ApiRestfulBackendVet.repositories.IAdminRepository;
import javax.management.relation.Role;
@Service
@RequiredArgsConstructor
public class authService {
private final userRepository userRepository;
private final jwtService jwtService;
private final PasswordEncoder passwordEncoder;
private final AuthenticationManager authenticationManager;
private final IAdminRepository adminRepository;
public authResponse login (loginRequest request) {
authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(request.getUsername(), request.getContraseña()));
UserDetails userDetails = userRepository.findByUsername(request.getUsername()).orElseThrow();
String token = jwtService.getToken(userDetails);
return authResponse.builder()
.token(token)
.build();
}
//Register admindios
public authResponse register (registerRequest request) {
user user1 = user.builder()
.email(request.getEmail())
.username(request.getUsername())
.contrasena(passwordEncoder.encode( request.getContraseña()))
.role(role.ADMINDIOS)
.build();
userRepository.save(user1);
return authResponse.builder()
.token(jwtService.getToken(user1))
.build();
}
}
Я пытался сделать то же самое, используя только вход пользователя, но я не знаю, как заставить его выполнять как вход пользователя, так и вход пользователя. и процессы генерации jwt и сохранение в базе данных другой информации
Подробнее здесь: https://stackoverflow.com/questions/790 ... a-with-jwt
Мобильная версия