Is there any way to unlock the ethereum account when using the infura api.
Can only metamask do it?
I would not like to use metamask because not every user has it on the browser
Infura doesn't store anyone's private keys, so there's no way to have Infura sign a transaction. The transaction must instead be signed locally before being sent to Infura. MetaMask is one tool available to do that, but you can sign transactions many different ways. (All of them require knowledge of the account's private key.)