Funktionen · Anmeldung und E-Mail
Anmeldung mit Google, ohne Google Cloud.
„Mit Google fortfahren“ und E-Mail-Anmeldung für die Menschen, die Ihre App nutzen – kein Google-Cloud-Projekt, kein OAuth-Client, keine Schlüssel. Die Registrierungs-E-Mail wird im Namen Ihrer App verschickt, von Ihrer eigenen Domain, sobald diese verifiziert ist.
Was Ihr Agent aufruft
appAuthConfigureappAuthStatusappAuthEmailConnectappAuthEmailStatus
Let staff sign in with Google
Update(app/login/page.tsx)
1 line · Google button → TOFU_SIGN_IN_URL
Write(app/auth/confirm/route.ts)
new route · verifyOtp for the email link
tofu · appAuthConfigure confirmed: true
configured · Google sign-in, and email sign-in as well
So funktioniert die Google-Anmeldung
Tofu spricht mit Google, damit Ihre App das nicht muss.
Tofus Broker unter oauth.trytofu.ai besitzt genau einen Google-Client und eine dauerhafte Callback-Adresse. Ihre App schickt den Browser dorthin; der Broker meldet die Person im eigenen Anmeldedienst Ihrer App an – dem Supabase-Projekt, das hinter der verwalteten Datenbank Ihrer App liegt.
- Ihre App„Mit Google fortfahren“ schickt den Browser zu Tofus Broker.
- oauth.trytofu.aiPrüft nur, ob die Rücksprungadresse zu Ihrer App gehört – und sonst nichts.
- GoogleDie Person meldet sich auf dem Zustimmungsbildschirm von Tofus Client an.
- Der Anmeldedienst Ihrer AppDort wird das Konto angelegt oder gefunden, und der Browser kommt angemeldet zurück.
Weil nur der Broker mit Google spricht, brauchen Sie kein Google-Cloud-Projekt, keinen OAuth-Client und keinen Schlüssel – und niemand muss pro App einen Schritt in einer Konsole erledigen.
In einem bestätigten Schritt schreibt appAuthConfigure Google- und E-Mail-Anmeldung in den Anmeldedienst Ihrer App und liest die Konfiguration zurück, bevor es konfiguriert meldet.
Eine Bereitstellung mit einer Datenbank schaltet die Anmeldung nicht von selbst ein: Dafür ist danach ein ausdrücklicher Aufruf nötig, und er lässt sich gefahrlos wiederholen.
// Continue with Google — Tofu brokers the sign-in.
window.location.href = process.env.NEXT_PUBLIC_TOFU_SIGN_IN_URL + "?return=" +
encodeURIComponent(window.location.href);&flow=pkce und löst die Anmeldung in einer eigenen kleinen Route ein. Beides schreibt Ihr Agent.Registrierungs-E-Mail, im Namen Ihrer App.
Die Anmeldung per E-Mail wird im selben Schritt eingeschaltet. So hat jedes Konto immer einen Weg zurück, auch wenn eine Anmeldung über einen Drittanbieter einmal nicht verfügbar ist.
Der Authentifizierungsdienst Ihrer App verschickt die E-Mails (confirmation, magic-link, password-reset, invitation, address-change und reauthentication) über Tofus E-Mail-Einrichtung, mit dem Namen Ihrer App als Absender. Kein SMTP-Passwort und kein E-Mail-Anbieter, bei dem Sie sich registrieren müssten.
Jede Nachricht enthält neben einem Link auch einen Einmalcode, weil E-Mail-Scanner, die Links vorab öffnen, sonst den Token verbrauchen würden, bevor Ihre Nutzer es können.
| Wann | Gesendet von |
|---|---|
| Bis Ihre Domain bestätigt ist | noreply@notify.trytofu.app |
| Sobald sie bestätigt ist | noreply@send.frankskitchen.com |
Von Ihrer Domain
Sechs DNS-Einträge, keine auf der Domain selbst.
Sobald Ihre Domain verbunden ist, legt appAuthEmailConnect eine Sendeidentität für send.frankskitchen.com an und veröffentlicht die zugehörigen DNS-Einträge – alle unter send., sodass die E-Mails, die Ihre Domain bereits empfängt, unberührt bleiben. Entfernen Sie sie, ist die Domain genau wie zuvor.
| Typ | Name, in frankskitchen.com | Wert |
|---|---|---|
| CNAME | ‹token 1›._domainkey.send | ‹token 1›.dkim.amazonses.com |
| CNAME | ‹token 2›._domainkey.send | ‹token 2›.dkim.amazonses.com |
| CNAME | ‹token 3›._domainkey.send | ‹token 3›.dkim.amazonses.com |
| MX 10 | bounce.send | feedback-smtp.‹region›.amazonses.com |
| TXT | bounce.send | v=spf1 include:amazonses.com ~all |
| TXT | _dmarc.send | v=DMARC1; p=none; rua=mailto:… |
Mit der Cloudflare-Freigabe, die für Ihre verbundene Domain bereits vorliegt, schreibt Tofu die Einträge selbst – ohne zweite Freigabe. Überall sonst listet Tofu sie zum Eintragen auf und bittet den E-Mail-Anbieter um eine Prüfung.
Bis der E-Mail-Anbieter die Domain als bestätigt meldet, gehen E-Mails weiter von notify.trytofu.app aus – die Registrierung pausiert während der Wartezeit nie.
Ein Link, den ein Scanner nicht verbrauchen kann.
Jede Nachricht verlinkt auf /auth/confirm unter der eigenen Adresse Ihrer App, und der Token wird erst verbraucht, wenn Ihre App verifyOtp aufruft. Ein Scanner, der den Link zuerst öffnet, erreicht also Ihre App und nicht den Anmeldedienst.
Eine neue App, die mit dem /tofu-Skill gebaut wurde, bekommt diese Route; Ihr Agent schreibt sie. Eine App, die ohne sie bereitgestellt wurde, meldet Personen trotzdem mit dem Code aus jeder Nachricht an.
import { createClient } from '@/lib/supabase/server';
import { NextResponse } from 'next/server';
export async function GET(request) {
const { searchParams, origin } = new URL(request.url);
const token_hash = searchParams.get('token_hash');
const type = searchParams.get('type');
if (token_hash && type) {
const supabase = await createClient();
const { error } =
await supabase.auth.verifyOtp({ type, token_hash });
if (!error) return NextResponse.redirect(`${origin}/`);
}
return NextResponse.redirect(`${origin}/login?error=link`);
}Demnächst verfügbar.
Auf dem Zustimmungsbildschirm steht der Name Tofu. Google zeigt den bestätigten Namen des Clients, über den die Anmeldung läuft – dort steht also „Weiter zu Tofu“. Für Ihren eigenen Namen dort brauchen Sie einen eigenen Google-Client; den gibt es noch nicht.
Nur mit einer von Tofu verwalteten Datenbank. Die Anmeldung wird in den Authentifizierungsdienst hinter der verwalteten Datenbank Ihrer App geschrieben. Eine App auf Basis von Clerk, Auth0 oder einem eigenen Supabase-Projekt bleibt genau so, wie sie ist.
Google und E-Mail, sonst nichts. Keine GitHub- oder Apple-Anmeldung für die Nutzer Ihrer App.
Anmelde-E-Mails, nicht die übrigen E-Mails Ihrer App. Tofu versendet die Anmelde- und Registrierungsnachrichten; Belege, Benachrichtigungen und alles andere, was Ihre App verschickt, laufen nicht über Tofu.
Für einen eigenen Absender brauchen Sie eine eigene Domain. Die Domain muss zuerst mit der App verbunden werden; bis sie bestätigt ist, kommen die E-Mails von noreply@notify.trytofu.app.
Der Absender über die eigene Domain ist der neueste Teil. Die zugehörigen Einträge, die Bestätigung und die Absenderumstellung sind in Tofus eigenem Testprojekt vollständig durchgelaufen, noch nicht in der App eines Kunden.
Einen Prompt einfügen. In 10 Minuten online.
Ihre App samt Datenbank, Ihre Domain und Ihre Anmeldung – in etwa 10 Minuten mit dem Agenten, den Sie schon nutzen.
Beschreiben Sie eine App oder bringen Sie eine mit, die Ihr Coding-Agent gebaut hat. Tofu stellt sie online.
Funktioniert mit jedem Coding-Agenten
Ressourcen
© 2026 Tofu
trytofu.ai
Aus dem Englischen übersetzt. Bei Abweichungen gilt der englische Originaltext.