| 12345678910111213141516171819202122232425262728293031323334353637 |
- import {redirect, error} from "@sveltejs/kit";
- import jwt from "jsonwebtoken";
- import {JWT_SECRET} from "$env/static/private";
- import User from "$lib/server/models/User.js";
- export default async function userAuth(cookies, rdrct = true){
- const userCookie = cookies.get("user");
- if(!userCookie){
- if(rdrct){
- redirect(303, "/");
- }else{
- error(401, "Unauthorized");
- }
- }
- let user;
- try{
- const userData = jwt.verify(userCookie, JWT_SECRET);
- user = await User.findOne({_id: userData.id, token: userData.token});
- }catch{
- if(rdrct){
- redirect(303, "/");
- }else{
- error(403, "Forbidden");
- }
- }
- if(!user){
- if(rdrct){
- redirect(303, "/");
- }else{
- error(401, "Unauthorized");
- }
- }
- return user;
- }
|