@samva/better-auth
v0.1.1
Published
Better Auth email callbacks powered by Samva.
Downloads
254
Maintainers
Readme
Samva for Better Auth
@samva/better-auth wires Better Auth email callbacks to the Samva SDK. It
covers email verification, password reset, change-email confirmation,
delete-account confirmation, email OTP, two-factor OTP, magic links, and
organization invitations.
import { betterAuth } from "better-auth";
import { withSamva } from "@samva/better-auth";
export const auth = betterAuth(
withSamva(
{
emailAndPassword: { enabled: true },
},
{
apiKey: process.env.SAMVA_API_KEY!,
appUrl: process.env.BETTER_AUTH_URL!,
plugins: {
emailOTP: true,
},
},
),
);Samva sends from the verified sender configured on your account, so there is no
from option in this package.
Callback Fragments
Use samvaEmail() when you want to wire Better Auth yourself:
import { emailOTP, magicLink } from "better-auth/plugins";
import { samvaEmail } from "@samva/better-auth";
const samva = samvaEmail({ apiKey: process.env.SAMVA_API_KEY! });
export const auth = betterAuth({
emailVerification: samva.emailVerification,
emailAndPassword: {
enabled: true,
sendResetPassword: samva.emailAndPassword.sendResetPassword,
},
plugins: [emailOTP(samva.plugins.emailOTP), magicLink(samva.plugins.magicLink)],
});Templates
Default HTML templates are included. Override any trigger with a function that
returns HTML, { subject, html, text }, or a React Email element. React Email
rendering requires @react-email/render in your app.
Set appUrl when you use the default organization invitation template so accept
links are absolute in email clients.
samvaEmail({
apiKey: process.env.SAMVA_API_KEY!,
templates: {
resetPassword: ({ user, url }) => ({
subject: "Reset your password",
html: `<p>Hi ${user.email}, reset your password <a href="${url}">here</a>.</p>`,
}),
},
});