nice auth flow working with verification and stuff with token

This commit is contained in:
talksik
2022-04-01 13:05:38 -04:00
parent 0e69e0ed64
commit 23eeee4228
6 changed files with 59 additions and 34 deletions
+15 -3
View File
@@ -2,6 +2,8 @@ import { NextFunction, Request, Response } from "express";
import { loadConfig } from "../config";
const jwt = require("jsonwebtoken");
const config = loadConfig();
// used by specific routes that need to authentication
@@ -13,16 +15,26 @@ export const authCheck = async (
try {
const { authorization } = req.headers;
// verify jwt token
const jwtSecret = config.JWT_TOKEN_SECRET;
if (!authorization) {
throw Error("No provided header");
}
// verify jwt token with our api secret
var decoded: JwtClaims = jwt.verify(authorization, config.JWT_TOKEN_SECRET);
res.locals.jwtClaims = decoded;
next();
} catch (error) {
console.log(error);
res.status(401).send("unauthorized");
}
};
export interface JwtClaims {
userId: string;
googleUserId: string;
picture: string;
email: string;
name: string;
}
+9 -1
View File
@@ -27,11 +27,19 @@ export default function getUserRoutes() {
router.get("/login", login);
router.get("/authCheck", authCheck);
router.get("/authcheck", authCheck, handleAuthCheck);
return router;
}
async function handleAuthCheck(req: Request, res: Response) {
try {
res.status(200).send();
} catch (error) {
res.status(401).send();
}
}
/** Create user if doesn't exist
* Returns jwt token for client and user details
*/