2026-09-22 17:17:21 +02:00
2026-09-19 13:49:39 +00:00
2026-09-28 16:00:52 +02:00
2026-09-19 15:51:41 +02:00
2026-10-01 20:52:19 +02:00
2026-09-19 13:49:39 +00:00
2026-10-01 20:51:50 +02:00
2026-09-19 17:15:47 +02:00
2026-09-28 11:57:58 +02:00

oidclogin

OpenID Connect Login SDK written in Go for Gin.

The following environment variables are expected to be set:

OIDC_CLIENT_ID=<client id>
OIDC_CLIENT_SECRET=<client secret>
OIDC_ISSUE=<issuer url>

If these env vars are not present, then depending on configuration, stubs will be used for the endpoints or the program will crash

Usage

package main

import (
	"os"

	"github.com/gin-contrib/sessions"
	"github.com/gin-contrib/sessions/memstore"
	"github.com/gin-gonic/gin"
	"github.com/janishutz/oidclogin"
)

func main() {
	r := gin.Default()

	// TODO: Better secret
	store := memstore.NewStore([]byte("secret"))
	r.Use(sessions.Sessions("jhid", store))

	oidclogin.Configure(r, os.Getenv("APP_BASE_URL"), "/account", false)
	r.LoadHTMLGlob("public/*")

	r.GET("/account", oidclogin.EnsureLogin(false), func(ctx *gin.Context) {
		ctx.HTML(200, "main.tmpl", gin.H{})
	})

	r.Run()
}

This example further needs the environment variable APP_BASE_URL set to something like https://app.example.org. Further, you should create a template file called main.tmpl and also copy over the template files in the public directory here and edit them.

Languages
Go 82%
Go Template 10.6%
CSS 7.4%