У меня есть класс User с:
int id;
String username;
String password;
String token;
Date tokenExpires;
И у меня есть такой метод:
private EntityManager em;
private User authenticate(String username, String password) throws Exception {
// Authenticate against a database, LDAP, file or whatever
// Throw an Exception if the credentials are invalid
Query query = em.createQuery("Select u from User u WHERE u.username = :name and u.password = :password");
query.setParameter("name", username);
query.setParameter("password", password);
return (User) query.getSingleResult();
}
и метод для генерации токена:
private String issueToken(String username) {
Random random = new SecureRandom();
String token = new BigInteger(130, random).toString(32);
return token;
}
как сохранить этот токен в БД, каждый раз, когда пользователь входит в систему? поэтому, когда пользователь входит в систему, должен сгенерировать токен, если пользователь снова входит в систему, он должен сгенерировать новый токен