25 lines
552 B
TypeScript
25 lines
552 B
TypeScript
![]() |
// src/lib/jwt.ts
|
||
|
import * as jose from "jose";
|
||
|
import { UserRole } from "@/types/auth";
|
||
|
|
||
|
interface JwtPayload {
|
||
|
id: string;
|
||
|
role: UserRole;
|
||
|
companyId: string;
|
||
|
branchId: string;
|
||
|
}
|
||
|
|
||
|
export function decodeToken(token: string): JwtPayload | null {
|
||
|
try {
|
||
|
// jose를 사용한 디코딩
|
||
|
const decoded = jose.decodeJwt(token);
|
||
|
const payload = decoded as unknown as JwtPayload;
|
||
|
if (payload.id && payload.role && payload.companyId && payload.branchId) {
|
||
|
return payload;
|
||
|
}
|
||
|
return null;
|
||
|
} catch {
|
||
|
return null;
|
||
|
}
|
||
|
}
|