Faroe
This software is in active development and has only gone through minimal testing.
Faroe is a modular auth server distributed as a Go package.
Some key features of the server:
- Takes care of all the hard parts. Passwords, email address verification, sessions, rate limiting, password resets, and more.
- Extends your existing user database instead of replacing it. Own and customize your user data. No more data synchronization between servers.
- No direct connections to your database.
- Only ephemeral data is stored. Less things to manage and worry about.
const result = await client.createSignup(emailAddress);
if (!result.ok) {
console.log(result.errorCode);
return;
}
console.log(result.signup);
window.localStorage.setItem("signup_token", result.signupToken);
The package has no hard dependencies. All you need is a key-value store and an email server.
package main
import "github.com/faroedev/faroe"
func main() {
server := faroe.NewServer(
storage,
userStore,
logger,
userPasswordHashAlgorithms,
temporaryPasswordHashAlgorithm,
cpuCount,
faroe.RealClock,
faroe.AllowAllEmailAddresses,
emailSender,
sessionConfig,
)
}
Only password authentication is supported. Support for passkeys and 2FA are planned but there are no immediate plans to add social login (e.g. Sign in with Google).
Read the Overview page to learn more and get started.