3 Commits
Author SHA1 Message Date
janishutz 0c4a463052 chore: add usage to readme 2026-09-19 17:15:47 +02:00
janishutz d744f68b12 fix: stylesheet 2026-09-19 17:10:47 +02:00
janishutz 133cbfd86c feat: improve templates 2026-09-19 17:04:11 +02:00
5 changed files with 107 additions and 6 deletions

No files matched your search

+34
View File
@@ -8,3 +8,37 @@ 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
```go
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.
+1 -3
View File
@@ -132,9 +132,7 @@ func EnsureLogin(redirectFail bool) func(c *gin.Context) {
c.Abort()
return
} else {
c.HTML(401, "autherror.tmpl", gin.H{
"error": "ERR_AUTH",
})
c.HTML(401, "autherror.tmpl", gin.H{})
c.Abort()
return
}
+14
View File
@@ -0,0 +1,14 @@
<html>
<head>
<!-- NOTE: You should definitely host this yourself! (and you can adjust the style that way, too!) -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/janishutz/oidclogin/public/style.css">
</head>
<body>
<div class="message-wrapper">
<h1>401</h1>
<p>Unauthorized</p>
</div>
<p>You are not authorized to view this page. Please log in</p>
<a href="/">Back Home</a>
</body>
</html>
+9 -3
View File
@@ -1,9 +1,15 @@
<html>
<head>
<!-- NOTE: You should definitely host this yourself! (and you can adjust the style that way, too!) -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/janishutz/oidclogin/public/style.css">
</head>
<body>
<h1>Login Failed!</h1>
<p>{{ .error }}</p>
<div class="message-wrapper">
<h1>500</h1>
<p>Internal Server Error</p>
</div>
<p>There was an error logging you in. Please try again. We are sorry for the inconvenience</p>
<a href="/">Back Home</a>
<p class="error-msg">{{ .error }}</p>
</body>
</html>
+49
View File
@@ -0,0 +1,49 @@
html,
body {
background-color: #050505;
color: #FFFFFF;
width: 100vw;
height: 100vh;
margin: 0;
padding: 0;
}
body {
font-family: sans-serif;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.message-wrapper {
display: flex;
justify-content: center;
align-items: center;
}
.message-wrapper h1 {
font-size: 10rem;
}
.message-wrapper p {
font-size: 1.5rem;
}
a {
color: white;
background-color: #101066;
padding: 10px;
border-radius: 10px;
cursor: pointer;
}
.error-msg {
font-size: 0.8rem;
position: fixed;
bottom: 10px;
left: 0;
width: 100vw;
text-align: center;
color: #888888;
}