I'm building a DApp that sends ERC20 Tokens from a browser Metamask account to an escrow contract on the Rinkeby testnet. I'm using a Rinkeby node from Infura, and when I call web3.eth.accounts[0] or web3.eth.getAccounts(), they both return an empty array. I did some digging and figured that since I'm connected to Infura I can't use local accounts. Is there any way to circumvent this? I tried manually providing the account address but that didn't work either.
EDIT: I apologize for not clarifying, I'm trying to run the function web3.personal.unlockAccount(web3.eth.defaultAccount). I get a console error stating the address is invalid because the accounts array is empty.