I am currently thinking about creating a dapp that connects to a phantom wallet on solana. A user account will be created upon connection Signup/Login a User. I'm not sure how to verify the public address. Wallets will pass information to the frontend and i would have to forward this information to the backend, thus it is manipulable and useless... How do I prevent people from sending fake addresses to the server and signing up to any account they want? I thought about signing a message but why is this not done on e.g. opensea.io(Eth/Metamask)?
2 に答える
人々が偽のアドレスをサーバーに送信して、必要なアカウントにサインアップするのを防ぐにはどうすればよいですか?
メッセージに署名してもらいます。
メッセージに署名することを考えましたが、opensea.io(Eth/Metamask) などでこれが行われないのはなぜですか?
OpenSea はユーザーのユーザー アカウントを作成または管理しないため、これは OpenSea では実行されません。アプリは、ユーザーの Web3 プロバイダー (MetaMask など) の PKI に完全に依存しています。
バックエンドでユーザー用のユーザー アカウントを作成する必要がある理由を自問してください。そのようなアカウントを作成する必要がある場合は、ユーザーにメッセージに署名してもらいます。ユーザー アカウントを作成する必要がない場合は、ユーザーが OpenSea のように独自の PKI を使用してブロックチェーンで直接認証できるようにします。
バックエンド自体でキーペア (公開鍵 + 秘密鍵) を作成しないのはなぜですか? サインアップ時に新しいアカウントを作成しているため。バックエンドにリクエストを送信してアカウントを作成し、公開鍵をユーザーに返します。
しかし、これを行う代わりに。ファントムウォレットのようなものを使用して、ユーザーに新しいウォレットとサインアップを作成するように依頼できます。それは役に立ちましたか?