Darkness4/auth-htmx
Darkness4/auth-htmx has 107 GitHub stars and 9 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-11 13:39 UTC. Last push 2026-11-05.
Comment ces chiffres sont mesurés
Experiment with Go + HTMX and OAuth2/OIDC + WebAuthn
Progression mesurée des étoiles
- in 24h
- 0
- in 7 days
- Mise à jour retardée
- in 15 days
- Mise à jour retardée
- in 1 month
- Mise à jour retardée
Variations nettes sur des périodes qui se chevauchent, pas des totaux quotidiens. Les mesures absentes restent vides. Les étoiles indiquent l’intérêt, pas la qualité.
README.md
OriginalGo + HTMX + OAuth2/OIDC + WebAuthn
A very simple example HTMX with OAuth2 with:
- Go HTML templating engine.
- HTMX solution for SSR.
- OAuth2 with Github Auth and OIDC. OAuth2 delegates authentication to another authentication service. OIDC provides identities.
- CSRF protection measures for OAuth2 and all requests.
- SQLite3 with sqlc and golang-migrate.
- Optional users in database as Identity Provider. Authentication is through WebAuthn, a solution to delegate authentication directly to the user.
- JWT is used a session token.
Embellishment:
- Notyf to notify about errors, include HTMX errors.
- Added Hyperscript for edge cases.
Motivation
For the hype.
Usage
Edit the config.yaml to set the OAuth2 providers.
Set the necessary parameters or environment variables:
## .env.local ## A 32 bytes hex secret () CSRF_SECRET=51b22632498f26d9131c4743b72c362567b5b4c96ac5e0f4fef7cb58ecac5684 ## A unique string secret JWT_SECRET=secret ## PUBLIC_URL will be used as redirect url which is ${PUBLIC_URL}/callback PUBLIC_URL=http://localhost:3000 # redirectURL: http://localhost:3000/callback DB_PATH=/data/db.sqlite3 # CONFIG_PATH=/path/to/config.yamlRun the binary:
./auth-htmx
Help:
NAME:
auth-htmx - Demo of Auth and HTMX.
USAGE:
auth-htmx [global options] command [command options] [arguments...]
COMMANDS:
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--csrf.secret value A 32 bytes hex secret [$CSRF_SECRET]
--jwt.secret value A unique string secret [$JWT_SECRET]
--config.path value, -c value Path of the configuration file. (default: "./config.yaml") [$CONFIG_PATH]
--public-url value An URL pointing to the server. (default: "http://localhost:3000") [$PUBLIC_URL]
--db.path value SQLite3 database file path. (default: "./db.sqlite3") [$DB_PATH]
--help, -h show help
--version, -v print the version
Application Flow
- A home page:
- Show login button if not logged in.
- Else, show a welcome with routing.
- A protected counter page.
The login process follows the standard OAuth2 process, which is fully documented on GitHub.
Fetching identity is through OIDC or GitHub API.
Explorer des projets similaires
Asabeneh/30-Days-Of-Python
Le défi de programmation 30 Days of Python est un guide pas à pas pour apprendre le langage de programmation Python en 30 jours. Ce défi peut prendre plus de 100 jours. Avancez à votre rythme. Ces vidéos peuvent aussi vous aider : https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,618 étoilesgrafana/grafana
Plateforme ouverte et composable d’observabilité et de visualisation de données. Visualise les métriques, les journaux et les traces issus de plusieurs sources, comme Prometheus, Loki, Elasticsearch, InfluxDB, Postgres et bien d’autres.
77,859 étoilesredis/redis
Pour les développeurs qui créent des applications en temps réel pilotées par les données, Redis est le cache, le serveur de structures de données et le moteur de requêtes documentaires et vectorielles préféré, le plus rapide et le plus riche en fonctionnalités.
77,472 étoilesapache/superset
Apache Superset est une plateforme de visualisation et d'exploration de données.
75,495 étoiles