features
Überprüfung
Bestätigen Sie die Identität von Mitgliedern mit Discord OAuth2 und mehrschichtigen Sicherheitsprüfungen. Verstehen Sie den kompletten Verifizierungsablauf, jede Sicherheitsüberprüfung, Datenerfassung, Anpassungsoptionen und den Widget-Modus.
Übersicht
Die Verifizierung ist die Hauptfunktion von Restore Hub. Wenn ein Mitglied Ihrem Server beitreten möchte, besucht es Ihre Verifizierungsseite, autorisiert sich mit Discord, durchläuft Sicherheitsprüfungen und erhält die verifizierte Rolle. Der gesamte Vorgang dauert für legitime Benutzer nur Sekunden, während Bots, Alts, VPN-Benutzer und andere Bedrohungen blockiert werden.
Der Überprüfungsablauf kann von zwei Quellen ausgelöst werden: einem Discord-Server (der Standardablauf, bei dem Mitglieder auf einen Link in Ihrem Server klicken) oder einem Website-Widget (ein einbettbares JavaScript-Widget für externe Websites). Beide Abläufe verwenden die gleiche Sicherheits-Pipeline.
Der vollständige Ablauf der Verifizierung
Hier ist die genaue Reihenfolge der Vorgänge, wenn ein Mitglied auf Ihren Verifizierungslink klickt. Jeder Schritt erfolgt nacheinander - wenn eine Prüfung fehlschlägt, wird der Ablauf gestoppt und das Mitglied sieht eine Block-/Fehlermeldung.
- Seite laden - Sitzung erstellt - Das Mitglied besucht Ihre Verifizierungs-URL (restorehub.net/s/your-slug oder verify.yourdomain.com). RestoreHub erstellt eine eindeutige Sitzungs-ID und zeichnet ein Seitenaufruf-Ereignis mit IP, Benutzer-Agent, Gerätetyp, Betriebssystem, Land und Referrer-URL auf.
- Pre-OAuth-Prüfung 1 - Whitelist - Wenn der Server über Whitelist-Regeln verfügt (IP, Benutzer-ID, Fingerabdruck, Land, ASN), prüft Restore Hub, ob der Besucher einer dieser Regeln entspricht. Besucher, die auf der Whitelist stehen, umgehen ALLE nachfolgenden Sicherheitsprüfungen und gehen direkt zu OAuth2 über.
- Pre-OAuth-Prüfung 2 - Firewall - Wenn die Firewall aktiviert ist (Premium+), prüft Restore Hub die IP, das Land, die ASN, den Browser-Fingerabdruck und andere Attribute des Besuchers mit allen Firewall-Regeln. Wenn eine Regel zutrifft, wird der Besucher sofort blockiert.
- Pre-OAuth-Check 3 - Länderbeschränkungen - Wenn der Server erlaubte oder gesperrte Länder konfiguriert hat, wird das Land des Besuchers (abgeleitet von der IP-Geolokation) überprüft. Sie können im Modus "Zulassen" (nur gelistete Länder können überprüft werden) oder im Modus "Sperren" (gelistete Länder werden verweigert) arbeiten.
- Pre-OAuth-Check 4 - Erkennung von VPN/Proxy/Tor/Datacenter - Wenn die VPN-Blockierung aktiviert ist (Premium+), wird die IP des Besuchers mit der internen IP-Intelligence-Datenbank von Restore Hub abgeglichen. Diese deckt VPN-Exit-Nodes, Proxy-Server, Tor-Exit-Nodes, IPs von Rechenzentren/Hosts und Bogon-Bereiche ab. Es werden keine externen API-Aufrufe getätigt - alle Daten sind lokal.
- Pre-OAuth-Prüfung 5 - Captcha - Wenn Captcha aktiviert ist, muss der Besucher eine Cloudflare Turnstile-Herausforderung (unsichtbar oder verwaltet) lösen, bevor er fortfahren kann. Dies geschieht vor OAuth2, um Bots daran zu hindern, die Discord-Autorisierungsseite zu erreichen.
- OAuth2-Umleitung - Der Besucher klickt auf die Schaltfläche "Verifizieren" und wird auf die OAuth2-Autorisierungsseite von Discord weitergeleitet. Die angeforderten Bereiche sind: identify (Benutzer-ID, Benutzername, Avatar), email (E-Mail-Adresse), guilds (Liste der Server, in denen sie sind) und guilds.join (Möglichkeit, sie zu einem Server hinzuzufügen).
- OAuth2 Zustimmung & Rückruf - Das Mitglied autorisiert die Anwendung. Discord leitet sie mit einem Autorisierungscode an die Rückruf-URL von Restore Hub weiter. Restore Hub tauscht den Code gegen Zugangs- und Aktualisierungs-Tokens aus und holt dann das Discord-Profil, die E-Mail und die Gildenliste des Mitglieds ab.
- Post-OAuth-Prüfung 1 - Schwarze Liste - Die Discord-Benutzer-ID des Mitglieds wird mit Ihrer persönlichen Sperrliste abgeglichen. Wenn sie auf der schwarzen Liste stehen, wird die Verifizierung abgelehnt.
- Post-OAuth-Prüfung 2 - Kontolalter - Wenn ein Mindestalter für den Account festgelegt ist (z. B. 30 Tage), extrahiert Restore Hub das Erstellungsdatum des Accounts aus der Discord-Benutzer-ID-Snowflake und überprüft, ob der Account alt genug ist.
- Post-OAuth-Prüfung 3 - Alt-Erkennung - Wenn die Alt-Erkennung aktiviert ist (Premium+), vergleicht Restore Hub den Browser-Fingerabdruck des Mitglieds (Canvas, WebGL, Audiokontext, Gerätespezifikationen) mit allen zuvor verifizierten Mitgliedern auf Ihren Servern. Wenn ein übereinstimmender Fingerabdruck unter einer anderen Discord-Benutzer-ID gefunden wird, wird er als potenzieller alter Account gekennzeichnet.
- Rollenzuweisung - Alle Prüfungen wurden bestanden. Restore Hub verwendet den OAuth2-Bereich guilds.join, um das Mitglied zum Server hinzuzufügen (falls es noch nicht drin ist) und weist ihm die konfigurierte verifizierte Rolle über die REST-API des Bots zu. Das Mitglied ist nun verifiziert.
- Speicherung von Daten - Die Discord-Daten des Mitglieds, OAuth2-Tokens (verschlüsselt), Netzwerk-Metadaten, Geräte-Metadaten und Browser-Fingerabdrücke werden gespeichert. Die Token ermöglichen ein zukünftiges Pulling. Alle sensiblen Felder (IP, E-Mail, Token) werden im Ruhezustand verschlüsselt.
Sicherheitsprüfungen - Detaillierte Referenz
| Prüfen | Wann | Planen | Konfigurierbar |
|---|---|---|---|
| Whitelist-Umgehung | Pre-OAuth (1st) | Premium+ | Ja - Regeln nach IP, Benutzer-ID, Fingerabdruck, Land, ASN hinzufügen |
| Firewall-Regeln | Pre-OAuth (2nd) | Premium+ | Ja - 7 Regeltypen (IP, Land, ASN, Fingerabdruck, Benutzer-ID, Server-ID, Region) |
| Länderbeschränkungen | Pre-OAuth (3.) | Alle | Ja - Erlaubnis- oder Sperrmodus mit ISO-Ländercodes |
| VPN-/Proxy-Erkennung | Pre-OAuth (4.) | Premium+ | Ein-/Ausschalten; separate Umschalter für Tor- und Rechenzentrumssperre |
| Captcha | Pre-OAuth (5.) | Alle | Keine oder Cloudflare Turnstile wählen |
| Schwarze Liste | Post-OAuth (1.) | Alle | Verwaltet über das Dashboard oder den Befehl /blacklist |
| Account age | Post-OAuth (2nd) | All | Set minimum age in days (0 = disabled) |
| Alt-Erkennung | Post-OAuth (3.) | Premium+ | Ein- und Ausschalten; konfigurierbare Aktion (blockieren, kennzeichnen, benachrichtigen) |OAuth2-Bereiche und was sie ermöglichen
Wenn sich ein Mitglied über Discord OAuth2 autorisiert, fordert Restore Hub vier Bereiche an. Jeder Bereich ermöglicht eine bestimmte Funktionalität:
| Umfang | Gewährt Zugang zu | Warum Restore Hub es braucht |
|---|---|---|
| Identifizieren | Benutzer-ID, Benutzername, Anzeigename, Avatar, Banner, Akzentfarbe, Gebietsschema, MFA-Status, Prämientyp, öffentliche Flaggen | Überprüfung der Kernidentität - wissen, wer das Mitglied ist |
| Email | Email-Adresse und ob sie verifiziert ist | Korrelation der Alt-Erkennung, Kontakt für Warnungen, Datenanreicherung |
| guilds | Liste aller Server, auf denen sich das Mitglied befindet (ID, Name, Symbol, Eigentümerkennzeichen, Berechtigungen) | Server-ID-basierte Firewall-Regeln, serverübergreifende Analysen, Marktplatzüberprüfung |
| guilds.join | Möglichkeit, das Mitglied in seinem Namen einem Server hinzuzufügen | Hinzufügen von Mitgliedern zu Zielservern bei Pulls und Marktplatzbestellungen |Tipp: Der Bereich guilds.join ermöglicht das Ziehen von Mitgliedern. Wenn ein Mitglied sich verifiziert, willigt es ein, zu Servern hinzugefügt zu werden. Restore Hub speichert das OAuth2-Token (verschlüsselt) und verwendet es später, wenn Sie einen Pull-Vorgang initiieren.
Während der Verifizierung gesammelte Daten
Restore Hub sammelt während der Überprüfung umfassende Daten, um Sicherheitsfunktionen, Analysen und Informationen zu liefern. Hier finden Sie eine vollständige Aufschlüsselung der einzelnen Datenpunkte:
- Discord-Profil: benutzer-ID, Benutzername, Anzeigename, Avatar-Hash, Banner-Hash, Akzentfarbe, Gebietsschema, Premium-/Nitro-Typ (keine, klassisch, nitro, basic), öffentliche Flaggen (Abzeichen), MFA-Status, Datum der Kontoerstellung (aus Snowflake), Flagge für verifizierte E-Mail, Flagge für verifizierte Telefonnummer
- E-Mail: e-Mail-Adresse (im Ruhezustand verschlüsselt), Verifizierungsstatus
- Zünfte: array der Gildenobjekte, in denen das Mitglied ist (wird für Server-ID-Firewall-Regeln und serverübergreifende Intelligenz verwendet)
- OAuth2-Tokens: zugriffstoken und Refresh-Token (beide verschlüsselt), Zeitstempel des Tokenablaufs
- Netzwerk: IP-Adresse (verschlüsselt), Ländercode, Regionalcode, Stadt, ASN, ISP-Name, VPN-Flagge, Proxy-Flagge, Tor-Flagge, Flagge des Rechenzentrums, Flagge des Mobilfunknetzes
- Gerät: user Agent String, Gerätetyp (Desktop/Mobil/Tablet), Betriebssystem, Bildschirmauflösung, Sprache, Zeitzone
- Hardware: Anzahl der CPU-Kerne (hardwareConcurrency), Gerätespeicher (GB), GPU-Anbieter (WebGL UNMASKED_VENDOR), GPU-Renderer (WebGL UNMASKED_RENDERER), Farbtiefe, Touch-Unterstützung
- Browser: cookies aktiviert, "Do Not Track"-Flagge, Anzahl der Plugins, Anzahl der erkannten Schriften, Verbindungstyp (4g/3g/2g), Downlink-Geschwindigkeit der Verbindung (Mbps)
- Fingerabdrücke: composite Browser Fingerprint Hash, individueller Canvas Fingerprint Hash, WebGL Fingerprint Hash, AudioContext Fingerprint Hash
- Referent: die URL, die das Mitglied auf die Verifizierungsseite verwiesen hat (falls vorhanden)
Warnung: Alle persönlich identifizierbaren Informationen (IP-Adressen, E-Mail-Adressen, OAuth2-Tokens) werden im Ruhezustand mit AES-256 verschlüsselt. Bei Premium+-Tarifen können Serverbesitzer detaillierte Mitgliederdaten auf der Mitgliederdetailseite einsehen. Beim Free-Tarif sind nur grundlegende Discord-Profilinformationen sichtbar.
Benutzerdefinierte Überprüfungsseiten
Jeder Server erhält eine anpassbare Verifizierungsseite. Sie können sie so gestalten, dass sie der Identität Ihrer Community entspricht. Alle Anpassungsoptionen werden in den Servereinstellungen unter "Verifizierungsseite" oder über das JSON-Objekt "VerifyPageConfig" konfiguriert.
| Option | Beschreibung |
|---|---|
| Profilbild | Ein quadratisches Bild, das über der Bestätigungsschaltfläche angezeigt wird (Ihr Gemeindelogo) |
| Bannerbild | Ein breites Bild am oberen Rand der Seite |
| Banner Video | Ein Video, das im Bannerbereich abgespielt wird (MP4/WebM URL) |
| Hintergrundfarbe | Eine einfarbige Farbe für den Seitenhintergrund (Hex-Code) |
| Hintergrundbild | Ein ganzseitiges Hintergrundbild (URL) |
| Hintergrundvideo | Ein ganzseitiges Hintergrundvideo in Endlosschleife (MP4/WebM URL) |
| Schriftfamilie | Name der Google-Schriftarten (z. B. "Inter", "Poppins", "JetBrains Mono") |
| Textfarbe | Hex-Farbe für den gesamten Text auf der Seite |
| Schaltflächenfarbe | Einfarbige Hex-Farbe für die Verifizierungsschaltfläche |
| Button Gradient | CSS-Farbverlauf für die Überprüfungsschaltfläche (überschreibt die Volltonfarbe) |
| Benutzerdefiniertes CSS | Roh-CSS, das in die Seite für erweiterte Anpassungen eingefügt wird |
| Social Links | Array von {platform, url} Objekten, die als Icons unterhalb der Überprüfungsschaltfläche gerendert werden |
| Erfolgsmeldung | Benutzerdefinierte Meldung, die nach erfolgreicher Überprüfung angezeigt wird |
| Fehlermeldung | Benutzerdefinierte Nachricht, die angezeigt wird, wenn die Verifizierung fehlschlägt |
| Blockierte Nachricht | Benutzerdefinierte Nachricht, die angezeigt wird, wenn ein Mitglied durch Sicherheitsüberprüfungen blockiert wird |
| Benutzerdefinierter Cursor | URL zu einem benutzerdefinierten Cursor-Bild |
| Musik-URL | URL zum Hintergrundton, der auf der Verifizierungsseite abgespielt wird |Tipp: Sie können Ihre benutzerdefinierte Überprüfungsseite im Dashboard in der Vorschau anzeigen, bevor Sie sie live schalten. Verwenden Sie die Schaltfläche "Vorschau" in den Servereinstellungen.
Widget-Modus - Verifizierung auf Ihrer Website
Neben dem standardmäßigen Discord-basierten Verifizierungsablauf bietet Restore Hub ein JavaScript-Widget, das Sie auf jeder Website einbetten können. Dies ermöglicht Discord SSO (Single Sign-On) auf Ihrer eigenen Website - Mitglieder verifizieren sich über Ihre Website und erhalten eine Rolle auf Ihrem Discord-Server.
Der Widget-Modus verwendet die gleiche Sicherheitspipeline (Firewall, VPN-Erkennung, Captcha, Alt-Erkennung) wie die Standardüberprüfung. Der einzige Unterschied besteht darin, wo das Mitglied den Fluss beginnt.
- Aktivieren Sie das Widget - Gehen Sie in den Servereinstellungen auf die Registerkarte Widget und schalten Sie sie ein.
- Erlaubte Herkünfte konfigurieren - Fügen Sie die Domänen hinzu, in die das Widget eingebettet werden soll (z. B. https://yoursite.com). Dadurch wird verhindert, dass das Widget auf nicht autorisierten Websites verwendet wird.
- Anpassen der Schaltfläche - Legen Sie den Text der Schaltfläche (Standard: "Mit Discord anmelden"), die Farbe der Schaltfläche und die Textfarbe fest.
- Das Skript einbetten - Kopieren Sie den mitgelieferten <script>-Tag und fügen Sie ihn in das HTML Ihrer Website ein. Das Widget zeigt eine Schaltfläche an, die den Discord OAuth2-Fluss in einem Popup-Fenster auslöst.
npm installieren @restorehub/widget
importiere { verify } von "@restorehub/widget";
const result = await verify("ihr-server-slug");Verifizierungs-URLs
Mitglieder greifen auf Ihre Verifizierungsseite über eines von zwei URL-Formaten zu:
- Slug-URL: restorehub.net/s/your-community - Sofortige Einrichtung, kein DNS erforderlich. Der Slug darf nur aus Kleinbuchstaben, Zahlen und Bindestrichen bestehen.
- Benutzerdefinierte Domäne: verify.yourdomain.com - Erfordert einen CNAME-Eintrag, der auf cname.restorehub.net verweist. Verfügbar für Business+ Pläne. Automatisches SSL über Let's Encrypt.
Status der Verifikationsereignisse
Jeder Überprüfungsversuch wird durch eine Reihe von Ereignisstatus nachverfolgt. Diese erscheinen in Ihrem Analyse-Dashboard und in den API-Antworten:
| Status | Bedeutung |
|---|---|
| PAGE_VIEW | Mitglied hat die Verifizierungsseite geladen |
| STARTED | Mitglied hat auf die Schaltfläche "Verifizieren" geklickt |
| CAPTCHA_SHOWN | Captcha-Herausforderung wurde angezeigt |
| CAPTCHA_PASSED | Mitglied hat das Captcha gelöst |
| OAUTH_REDIRECT | Mitglied wurde zu Discord OAuth2 umgeleitet |
| COMPLETED | Verifizierung erfolgreich - Rolle zugewiesen |
| BLOCKED | Blockiert durch eine Sicherheitsüberprüfung (blockReason Feld hat Details) |
| FAILED | Verifizierung aufgrund eines Fehlers fehlgeschlagen (Token-Austausch fehlgeschlagen, API-Fehler, etc.) |