2023-10-10 21:56:25 -04:00
|
|
|
import jwt from "jsonwebtoken";
|
2024-12-09 15:34:30 -05:00
|
|
|
import { IUser, User } from "@models/user";
|
2023-10-10 21:56:25 -04:00
|
|
|
|
|
|
|
export default defineEventHandler(async (event) => {
|
2024-12-09 15:34:30 -05:00
|
|
|
let ahead = (getHeaders(event).authorization || getHeaders(event).Authorization || getCookie(event, "rockfic_cookie"))?.replace("Bearer ", "");
|
2023-10-10 21:56:25 -04:00
|
|
|
if (ahead) {
|
2024-12-09 15:34:30 -05:00
|
|
|
let toktok: any;
|
|
|
|
let user: IUser | null = null;
|
2024-03-21 18:34:46 -04:00
|
|
|
try {
|
2024-12-09 15:34:30 -05:00
|
|
|
toktok = jwt.verify(ahead, useRuntimeConfig().jwt);
|
|
|
|
console.log(toktok);
|
|
|
|
if (toktok?.sub) {
|
|
|
|
user = await User.findById(toktok.sub as number)
|
|
|
|
.select("-password -auth -ipLog")
|
|
|
|
.exec();
|
|
|
|
} else if (toktok.id) {
|
|
|
|
user = await User.findById(toktok.id as number)
|
|
|
|
.select("-password -auth -ipLog")
|
|
|
|
.exec();
|
|
|
|
}
|
|
|
|
} catch (E) {
|
|
|
|
console.error(E);
|
|
|
|
} finally {
|
2024-03-21 18:34:46 -04:00
|
|
|
if (user) event.context.currentUser = user;
|
|
|
|
}
|
2023-10-10 21:56:25 -04:00
|
|
|
}
|
|
|
|
});
|