[Sender] -> [My Contract] -> [ERC20 Contract]
The sender invokes my Contract, and my contract in turns will invoke ERC20 contract to Transfer token on behalf of the senders (using his msg.sender).
However, the ERC20 contracts Transfer() function msg.sender will become the My Contract's address instead of the Sender's address.
May I know what is the correct way for My Contract to Transfer a Token on behalf the Sender?