typescript – Undefined, a la hora de acceder a los valores de un token

Estoy haciendo un ejercicio para aprender a usar Tokens. El token se genera perfectamente, pero cuando intento acceder a la funcion de logearme con ese usuario, me pierde los datos en una parte de la funciona verificar token.
Estoy usando Typescript, tengo el mismo ejercicio hecho con JS y me funciona perfectamente, creo que puedo estar cometiendo un error a la hora de construir la interface Payload.

Aqui os dejo mi codigo de la funcion en donde esta el error:

export const verifyToken = (req: Request, res: Response, next: NextFunction) => {

    const token = req.header('auth-token');

    if(!token) {
        return res.status(401).json({
            msg: 'Acceso denegado'
        });
    };

    const payload = jwt.verify(token, process.env.TOKEN_SECRET || 'secret_token') as IPayload;
    console.log(payload)
    req.userId = payload._id;
    console.log(payload._id)

    next();
    
};

Como veis tengo un console.log(payload), donde ahí si que todavía estoy recibiendo toda la data,os dejo aqui mismo el resultado en consola. Le he quitado numeros al token, por si alguien se da cuenta.

 {
(1)   data: {
(1)     role: 'USER',
(1)     status: true,
(1)     _id: '60312e74daed1017c89d3035',
(1)     name: 'gggg',
(1)     surname: 'gggg',
(1)     age: 3,
(1)     email: 'd@d',
(1)     password: '$2b$10$arF.tnr7KSgWgHpvdS7FmOZ84l6.tXONVtte0',
(1)     date: '2021-02-20T15:44:52.384Z',
(1)     __v: 0
(1)   },
(1)   iat: 16138989,
(1)   exp: 16164909
(1) }

En el siguiente console.log(payload._id), ya me dice que esta undefined. Es aquí donde esta perdiendo toda la tada, justo despues del console.log anterior.

Os dejo mi configuracion de la interface IPayload

export interface IPayload {
    _id: string;
    iat: number;
    exp: number;
} 

Y tambien esta configurado todo para que Typescript me de como valido el userId al ser requerido.

Muchas gracias a todos, si falta algo mas por subir, diganme.