-
Notifications
You must be signed in to change notification settings - Fork 0
/
05-UserToken.java
30 lines (23 loc) · 818 Bytes
/
05-UserToken.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@Table("auth_user_tokens")
@Getter
public class UserToken extends BaseEntity {
private static final StringKeyGenerator TOKEN_GENERATOR = new Base64StringKeyGenerator(Base64.getUrlEncoder().withoutPadding(), 96);
@Column("user_id")
private UUID userId;
@Column("type")
private UserTokenType type;
@Column("value")
private String value;
@Column("expires_on")
private OffsetDateTime expiresOn;
@PersistenceConstructor
public UserToken(@NonNull UUID userId, @NonNull UserTokenType type) {
this.userId = userId;
this.type = type;
this.value = TOKEN_GENERATOR.generateKey();
this.expiresOn = OffsetDateTime.now().plus(type.getExpiresIn());
}
public boolean isValid() {
return expiresOn.isAfter(OffsetDateTime.now());
}
}