Composable authentication for modern Go backends
$package main
func main() {
auth, err := limen.New(
&limen.Config{
Database: adapter.New(db),
Plugins: []limen.Plugin{
credentialpassword.New(),
}
}
)
if err != nil {
log.Fatal(err)
}
mux := http.NewServeMux()
mux.Handle("/api/auth/", auth.Handler())
}Limen is a lightweight, composable authentication and authorization library for Go
Composable
Import only the auth methods you use as separate Go modules.
Secure by default
Signed cookies, CSRF protection, origin allowlists, and built-in rate limiting.
Idiomatic Go
Works with net/http, Gin, Chi, Echo — anything that speaks http.Handler.
package main
import (...)
func main() {
auth, err := limen.New(&limen.Config{
BaseURL: "http://localhost:8080",
Database: adapter.New(db),
Plugins: []limen.Plugin{
credentialpassword.New(),
},
})
if err != nil {
log.Fatal(err)
}
mux := http.NewServeMux()
mux.Handle("/api/auth/", auth.Handler())
}Sessions, password hashing, OAuth, CSRF — the parts you keep rewriting in every project. Install Limen in your Go backend, call it from any client, and move on.
Read the docsShip the login experience your users expect, without gluing libraries together.
Secure any Go HTTP service without writing auth from scratch.
One auth core that adapts to your Go stack, not the other way around.
Join other developers using Limen to secure their Go applications with production-ready authentication.