46 lines
1.2 KiB
Java
46 lines
1.2 KiB
Java
package dev.service;
|
|
|
|
import dev.dao.UserDao;
|
|
import dev.model.User;
|
|
|
|
import java.security.MessageDigest;
|
|
import java.security.NoSuchAlgorithmException;
|
|
import java.util.Base64;
|
|
|
|
public class AuthService {
|
|
|
|
private final UserDao userDao = new UserDao();
|
|
|
|
public boolean register(String username, String password, String email) {
|
|
if (userDao.findByUsername(username) != null) {
|
|
return false;
|
|
}
|
|
|
|
User user = new User();
|
|
user.setUsername(username);
|
|
user.setPassword(hashPassword(password));
|
|
user.setEmail(email);
|
|
|
|
return userDao.save(user);
|
|
}
|
|
|
|
public User login(String username, String password) {
|
|
User user = userDao.findByUsername(username);
|
|
|
|
if (user != null && user.getPassword().equals(hashPassword(password))) {
|
|
return user;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
private String hashPassword(String password) {
|
|
try {
|
|
MessageDigest md = MessageDigest.getInstance("SHA-256");
|
|
byte[] hash = md.digest(password.getBytes());
|
|
return Base64.getEncoder().encodeToString(hash);
|
|
} catch (NoSuchAlgorithmException e) {
|
|
throw new RuntimeException("Error hashing password", e);
|
|
}
|
|
}
|
|
} |