ERC721 says that NFTs can only be transferred by owners/authorized addresses. How are solidity marketplace contracts made to allow a third party address to transfer an NFT from your account to theirs since they would need to be authorized to transfer that NFT
You will understand the whole process better once you do it by own. I will recommend this for experimenting: ERC721-Redroad
When we want to sell an NFT on a third party platform, we have to transfer the ownership of the ERC721 token to this third party, so that it can sell to buyers.
None of the third party is allowed to transfer the ownership of your NFT.