ExtractToken.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { Request, Response, NextFunction } from 'express';
  2. import jwt, { JwtPayload } from 'jsonwebtoken';
  3. export const extractToken = async (req: Request, res: Response, next: NextFunction) => {
  4. try {
  5. const bearerToken = req.headers.authorization;
  6. if (!bearerToken || !bearerToken.startsWith('Bearer ')) {
  7. return res.status(401).json({ message: 'Token tidak valid atau tidak ditemukan.' });
  8. }
  9. const token = bearerToken.split(' ')[1];
  10. const tokenData = jwt.decode(token) as JwtPayload;
  11. (req as any).tokenData = {
  12. sub: tokenData?.sub as string,
  13. realm_access: tokenData?.realm_access
  14. };
  15. next();
  16. } catch (error) {
  17. next(error);
  18. }
  19. };
  20. // import { Response, NextFunction } from 'express';
  21. // import jwt from 'jsonwebtoken';
  22. // import { CustomRequest } from '../types/token/CustomRequest';
  23. // const extractToken = async (req: CustomRequest, res: Response, next: NextFunction) => {
  24. // try {
  25. // const bearerToken = req.headers.authorization;
  26. // if (!bearerToken || !bearerToken.startsWith('Bearer ')) {
  27. // return res.status(401).json({ message: 'Token tidak valid atau tidak ditemukan.' });
  28. // }
  29. // const token = bearerToken.split(' ')[1];
  30. // const tokenData = jwt.decode(token);
  31. // req.tokenData = { sub: tokenData?.sub as string };
  32. // next();
  33. // } catch (error) {
  34. // next(error);
  35. // }
  36. // };
  37. // export default extractToken;
  38. // module.exports = async (req, res, next) => {
  39. // try {
  40. // // Decode access token
  41. // const bearerToken = req.headers.authorization;
  42. // // bearerToken would return "Bearer <access_token>"
  43. // const token = bearerToken.split(" ");
  44. // // token would return ["Bearer", "<access_token>"]
  45. // const tokenData = jwt.decode(token[1]);
  46. // // tokenData would return user's data
  47. // // Store decoded token data in request
  48. // req.tokenData = tokenData;
  49. // next();
  50. // } catch (error) {
  51. // next(error);
  52. // }
  53. // }