This commit is contained in:
commit
421043c9b5
67 changed files with 3455 additions and 0 deletions
34
src/lib/auth/jwt.ts
Normal file
34
src/lib/auth/jwt.ts
Normal file
|
@ -0,0 +1,34 @@
|
|||
import { createDecoder, createSigner, createVerifier } from "fast-jwt";
|
||||
import { jwt } from "#environment/jwt";
|
||||
|
||||
import type { UserSession } from "#types/config";
|
||||
|
||||
class JWTService {
|
||||
private readonly signer;
|
||||
private readonly verifier;
|
||||
private readonly decoder;
|
||||
|
||||
constructor() {
|
||||
this.signer = createSigner({
|
||||
key: jwt.secret,
|
||||
expiresIn: jwt.expiration,
|
||||
});
|
||||
this.verifier = createVerifier({ key: jwt.secret });
|
||||
this.decoder = createDecoder();
|
||||
}
|
||||
|
||||
sign(payload: UserSession): string {
|
||||
return this.signer(payload);
|
||||
}
|
||||
|
||||
verify(token: string): UserSession {
|
||||
return this.verifier(token);
|
||||
}
|
||||
|
||||
decode(token: string): UserSession {
|
||||
return this.decoder(token);
|
||||
}
|
||||
}
|
||||
|
||||
export const jwtService = new JWTService();
|
||||
export { JWTService };
|
Loading…
Add table
Add a link
Reference in a new issue