Idk. The only way I know to transferFrom without beforehand approve is to use EIP-2612 (should be implemented in token contract). https://soliditydeveloper.com/erc20-permit here is explanation how it works