Login, JWT and auth overstructure

* Signup -> Login -> JWT-Doot flow now works for users
* Administrators cannot currently sign up for obvious reasons
* Segmented the main.go methods into a core controller package
This commit is contained in:
🐙PiperYxzzy
2022-05-01 12:31:41 +02:00
parent 6db02148ea
commit 8ab45e2401
6 changed files with 231 additions and 162 deletions

View File

@@ -11,7 +11,7 @@ import (
type Admin struct {
Auth
Email string
Email string `gorm:"unique" sql:"index"`
}
const adminJwtDuration = time.Hour * 2
@@ -19,11 +19,10 @@ const adminJwtDuration = time.Hour * 2
var adminHmac = util.GenerateHmac()
func (a *Admin) GetJwt() (string, int) {
exp := time.Now().Add(adminJwtDuration)
j := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
"sub": a.Uid.String(),
"iat": time.Now(),
"exp": exp,
"iat": time.Now().Unix(),
"exp": time.Now().Add(adminJwtDuration).Unix(),
"role": "admin",
})