Skip to Content
dApps

Signieren

Verbinden Sie den Provider vor dem Signieren und bestätigen Sie das ausgewählte Netzwerk. Der direkt injizierte Provider und der Aptos-Wallet-Standard-Adapter verwenden unterschiedliche Argumenttypen; verwenden Sie ihre Beispiele nicht austauschbar. Ersetzen Sie verkürzte Adressen und stellen Sie für rein lesende Aufrufe einen SDK-Client bereit.

Erfahren Sie, wie Sie Nachrichten zur Authentifizierung oder Überprüfung signieren.


Nachricht signieren

Beliebige Nachrichten zur Authentifizierung oder Überprüfung signieren:

const message = 'Welcome to MyApp!\n\nClick to sign in.\n\nNonce: abc123' const response = await provider.signMessage({ message, nonce: 12345, // Example only; obtain a single-use challenge from your server }) console.log({ signature: response.signature, // Hex-encoded signature fullMessage: response.fullMessage, // Full signed message prefix: response.prefix, // Message prefix used })

Optionen zum Signieren einer Nachricht

const response = await provider.signMessage({ message: 'Hello Aptos', nonce: 12345, address: true, // Include address in message application: true, // Include app info chainId: true, // Include chain ID })

Nachricht prüfen (Off-Chain)

import nacl from 'tweetnacl' const { signature, fullMessage } = await provider.signMessage({ message: 'Hello Aptos', nonce: 12345, }) const account = await provider.account() const pubKeyBytes = Buffer.from(account.publicKey.slice(2), 'hex') const signatureBytes = Buffer.from(signature.slice(2), 'hex') const messageBytes = Buffer.from(fullMessage) const isValid = nacl.sign.detached.verify(messageBytes, signatureBytes, pubKeyBytes) console.log('Signature valid:', isValid)

Anmelden (AIP-Standard)

Für einen standardisierten Anmeldeablauf:

const signInInput = { // Sign-in parameters } const result = await provider.signIn(signInInput) console.log({ address: result.account.address, publicKey: result.account.publicKey, signature: result.signature, })

Fehlerbehandlung

try { await provider.signMessage({ message: 'Hello', nonce: 12345 }) } catch (error) { switch (error.code) { case 4001: console.log('User rejected the request') break case 4100: console.log('The account or method is not authorized') break case 4200: console.log('Unsupported method') break default: console.error('Error:', error.message) } }

Die direkte Methode signMessage verwendet eine numerische Nonce. signMessageCompatible und Wallet-Standard-Integrationen verwenden eine Nonce als Zeichenfolge. Überprüfen Sie das zurückgegebene fullMessage, den Signierenden und die Challenge und machen Sie die Challenge nach Verwendung ungültig. Die obige Anmeldeeingabe ist ein schematischer Platzhalter; erstellen Sie das vollständige AptosSignInInput, das Ihre Adapterversion benötigt.

Zuletzt aktualisiert am