SIWE(Entrar com Ethereum) é uma forma de verificar a identidade do usuário na Ethereum, semelhante à iniciação de transações pela carteira, provando o controle do usuário sobre a carteira. Atualmente, a autenticação é muito simples, basta assinar as informações no plugin da carteira, e a maioria dos plugins de carteira comuns já oferece suporte. Este artigo discute principalmente os cenários de assinatura na Ethereum.
Será necessário SIWE
Se a sua Dapp tiver as seguintes necessidades, pode considerar usar SIWE:
Ter seu próprio sistema de usuários
É necessário consultar informações relacionadas à privacidade do usuário
Mas se o seu Dapp for principalmente uma funcionalidade de consulta, como uma aplicação semelhante ao etherscan, então não é necessariamente necessário o SIWE.
Você pode estar se perguntando, ao conectar-se à Dapp através da carteira, isso não prova a propriedade da carteira? Isso só é válido para o front-end. Para chamadas de interface que requerem suporte ao back-end, apenas passar o endereço não é suficiente, pois o endereço é uma informação pública, qualquer um pode "emprestar" sua identidade.
Princípios e Processos do SIWE
O processo SIWE pode ser resumido em três etapas: conectar a carteira - assinar - obter a identificação.
Conectar carteira
Esta é uma operação comum do Web3, conectando a carteira no Dapp através de um plugin de carteira.
assinatura
Os passos de assinatura incluem a obtenção do valor Nonce, a assinatura da carteira e a verificação da assinatura no backend.
O backend gera um valor nonce aleatório e associa-o ao endereço. O frontend, após obter o valor nonce, constrói o conteúdo da assinatura, incluindo o valor nonce, o domínio, o ID da cadeia, entre outros, usando o método fornecido pela carteira para assinar. Por fim, a assinatura é enviada ao backend.
Obter identificação
Após a validação da assinatura no backend, retorna-se a identificação do usuário ( como JWT). As solicitações subsequentes no frontend devem incluir o endereço e a identificação, o que prova a propriedade da carteira.
Prática SIWE
Vamos desenvolver uma demonstração simples de SIWE usando Next.js, mostrando o fluxo básico. Nota: esta demonstração é apenas para fins de apresentação, o uso em ambiente de produção pode apresentar problemas de segurança.
Otimização: Utilizar serviços de nó dedicados para melhorar a velocidade de resposta
Através dos passos acima, implementámos uma estrutura básica de login SIWE. O uso de serviços de nós profissionais pode aumentar significativamente a velocidade de validação, sendo recomendado para ambientes de produção.
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
SIWE na prática: três passos para criar um sistema de identificação Ethereum
Guia de Uso do SIWE: Torne seu Dapp mais poderoso
SIWE(Entrar com Ethereum) é uma forma de verificar a identidade do usuário na Ethereum, semelhante à iniciação de transações pela carteira, provando o controle do usuário sobre a carteira. Atualmente, a autenticação é muito simples, basta assinar as informações no plugin da carteira, e a maioria dos plugins de carteira comuns já oferece suporte. Este artigo discute principalmente os cenários de assinatura na Ethereum.
Será necessário SIWE
Se a sua Dapp tiver as seguintes necessidades, pode considerar usar SIWE:
Mas se o seu Dapp for principalmente uma funcionalidade de consulta, como uma aplicação semelhante ao etherscan, então não é necessariamente necessário o SIWE.
Você pode estar se perguntando, ao conectar-se à Dapp através da carteira, isso não prova a propriedade da carteira? Isso só é válido para o front-end. Para chamadas de interface que requerem suporte ao back-end, apenas passar o endereço não é suficiente, pois o endereço é uma informação pública, qualquer um pode "emprestar" sua identidade.
Princípios e Processos do SIWE
O processo SIWE pode ser resumido em três etapas: conectar a carteira - assinar - obter a identificação.
Conectar carteira
Esta é uma operação comum do Web3, conectando a carteira no Dapp através de um plugin de carteira.
assinatura
Os passos de assinatura incluem a obtenção do valor Nonce, a assinatura da carteira e a verificação da assinatura no backend.
O backend gera um valor nonce aleatório e associa-o ao endereço. O frontend, após obter o valor nonce, constrói o conteúdo da assinatura, incluindo o valor nonce, o domínio, o ID da cadeia, entre outros, usando o método fornecido pela carteira para assinar. Por fim, a assinatura é enviada ao backend.
Obter identificação
Após a validação da assinatura no backend, retorna-se a identificação do usuário ( como JWT). As solicitações subsequentes no frontend devem incluir o endereço e a identificação, o que prova a propriedade da carteira.
Prática SIWE
Vamos desenvolver uma demonstração simples de SIWE usando Next.js, mostrando o fluxo básico. Nota: esta demonstração é apenas para fins de apresentação, o uso em ambiente de produção pode apresentar problemas de segurança.
trabalho preparatório
npx create-next-app@14
npm install antd @ant-design/web3 @ant-design/web3-wagmi wagmi viem @tanstack/react-query --save
Implementar o botão de conexão da carteira
Implementar a interface de backend
Otimização: Utilizar serviços de nó dedicados para melhorar a velocidade de resposta
Através dos passos acima, implementámos uma estrutura básica de login SIWE. O uso de serviços de nós profissionais pode aumentar significativamente a velocidade de validação, sendo recomendado para ambientes de produção.