import { Request, Response, NextFunction } from 'express'; import jwt, { JwtPayload } from 'jsonwebtoken'; export const extractToken = async (req: Request, res: Response, next: NextFunction) => { try { const bearerToken = req.headers.authorization; if (!bearerToken || !bearerToken.startsWith('Bearer ')) { return res.status(401).json({ message: 'Token tidak valid atau tidak ditemukan.' }); } const token = bearerToken.split(' ')[1]; const tokenData = jwt.decode(token) as JwtPayload; (req as any).tokenData = { sub: tokenData?.sub as string, realm_access: tokenData?.realm_access }; next(); } catch (error) { next(error); } }; // import { Response, NextFunction } from 'express'; // import jwt from 'jsonwebtoken'; // import { CustomRequest } from '../types/token/CustomRequest'; // const extractToken = async (req: CustomRequest, res: Response, next: NextFunction) => { // try { // const bearerToken = req.headers.authorization; // if (!bearerToken || !bearerToken.startsWith('Bearer ')) { // return res.status(401).json({ message: 'Token tidak valid atau tidak ditemukan.' }); // } // const token = bearerToken.split(' ')[1]; // const tokenData = jwt.decode(token); // req.tokenData = { sub: tokenData?.sub as string }; // next(); // } catch (error) { // next(error); // } // }; // export default extractToken; // module.exports = async (req, res, next) => { // try { // // Decode access token // const bearerToken = req.headers.authorization; // // bearerToken would return "Bearer " // const token = bearerToken.split(" "); // // token would return ["Bearer", ""] // const tokenData = jwt.decode(token[1]); // // tokenData would return user's data // // Store decoded token data in request // req.tokenData = tokenData; // next(); // } catch (error) { // next(error); // } // }