I'm in the process of creating an Ethereum DApp. The DApp consists of users who have associated data like email, name, and a profile picture. I would like to store the contents of the user within IPFS as a JSON object and reference this on chain using the IPFS hash. How could I go about associating this data with a particular user? In the sense, that subsequent interactions with the DApp connect the user with the data stored in IPFS. Is this done using the users account hash with a password of some sort?
For example, user A is interested in using the DApp and so, provides his or her email, name, and profile picture. Then any subsequent interaction with the DApp, like a comment or post would link this user to the respective user data in IPFS.
Any suggestions or adjustments to this way of modeling users would be greatly appreciated. Thanks!
(P.S. I come from the traditional web/mobile app world so I'm just getting accustomed to modeling things using smart contracts. So I apologize in advance if this is a simple or ill-structured question.)
One of the beauties of using a platform like Ethereum is that you can build a ZERO click login. If we establish that the user's
web3.eth.accounts[0]
is proof that the user controls the private key of that account's address, then you will always know that the user is valid.If you want to use IPFS like a database, my suggested approach would be this:
Note that with most decentralised systems a lot of the action happens on the client side.
User Signup
User Validation