Refactor JWT auth and remove DB dependency from config
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package auth
|
||||
|
||||
import (
|
||||
"CatsOfMastodonBotGo/internal/config"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -14,11 +15,13 @@ type JwtTokenGenerator struct {
|
||||
Audience string
|
||||
}
|
||||
|
||||
func NewJwtTokenGenerator(key string, issuer string, audience string) *JwtTokenGenerator {
|
||||
return &JwtTokenGenerator{
|
||||
Key: key,
|
||||
Issuer: issuer,
|
||||
Audience: audience,
|
||||
var JwtTokenGeneratorInstance *JwtTokenGenerator
|
||||
|
||||
func InitJwtTokenGenerator() {
|
||||
JwtTokenGeneratorInstance = &JwtTokenGenerator{
|
||||
Key: config.Config.JwtSecret,
|
||||
Issuer: config.Config.JwtIssuer,
|
||||
Audience: config.Config.JwtAudience,
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -2,21 +2,19 @@ package config
|
||||
|
||||
import (
|
||||
//"CatsOfMastodonBotGo/internal/auth"
|
||||
"CatsOfMastodonBotGo/internal/database"
|
||||
//"CatsOfMastodonBotGo/internal/services"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type config struct {
|
||||
Db *gorm.DB
|
||||
// PostService *services.PostService
|
||||
// Jwt *auth.JwtTokenGenerator
|
||||
AdminPassword string
|
||||
Instance string
|
||||
Tag string
|
||||
|
||||
JwtSecret string
|
||||
JwtIssuer string
|
||||
JwtAudience string
|
||||
}
|
||||
|
||||
var Config *config
|
||||
@@ -55,26 +53,16 @@ func Load() *config {
|
||||
audience = "CatsOfMastodonBotGo"
|
||||
}
|
||||
|
||||
// Setup database
|
||||
db, err := database.Connect()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
//Setup PostService
|
||||
// var postService = services.NewPostService(db)
|
||||
|
||||
// // Setup Jwt
|
||||
// var jwt = auth.NewJwtTokenGenerator(secret, issuer, audience)
|
||||
|
||||
// Inititlize AppContext
|
||||
var appContext = &config{
|
||||
Db: db,
|
||||
// PostService: postService,
|
||||
// Jwt: jwt,
|
||||
AdminPassword: adminPassword,
|
||||
Instance: instance,
|
||||
Tag: tag,
|
||||
|
||||
JwtSecret: secret,
|
||||
JwtIssuer: issuer,
|
||||
JwtAudience: audience,
|
||||
}
|
||||
return appContext
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"CatsOfMastodonBotGo/internal"
|
||||
"CatsOfMastodonBotGo/internal/auth"
|
||||
"CatsOfMastodonBotGo/internal/web/handlers"
|
||||
|
||||
"github.com/gin-contrib/cors"
|
||||
@@ -20,14 +20,15 @@ func SetupRouter() *gin.Engine {
|
||||
|
||||
handlers.InitAdminDashboardHandler()
|
||||
handlers.InitApiEndpointHandler()
|
||||
auth.InitJwtTokenGenerator()
|
||||
|
||||
admin := r.Group("/admin")
|
||||
|
||||
// My man, this is done way more efficient and fast in .NET, specially the authentication part
|
||||
admin.POST("/login", handlers.AdminDashboardHandlerInstance.Login)
|
||||
admin.GET("/getmedia", appContext.Jwt.GinMiddleware(), handlers.AdminDashboardHandlerInstance.GetMedia)
|
||||
admin.POST("/approve", appContext.Jwt.GinMiddleware(), handlers.AdminDashboardHandlerInstance.ApproveMedia)
|
||||
admin.POST("/reject", appContext.Jwt.GinMiddleware(), handlers.AdminDashboardHandlerInstance.RejectMedia)
|
||||
admin.GET("/getmedia", auth.JwtTokenGeneratorInstance.GinMiddleware(), handlers.AdminDashboardHandlerInstance.GetMedia)
|
||||
admin.POST("/approve", auth.JwtTokenGeneratorInstance.GinMiddleware(), handlers.AdminDashboardHandlerInstance.ApproveMedia)
|
||||
admin.POST("/reject", auth.JwtTokenGeneratorInstance.GinMiddleware(), handlers.AdminDashboardHandlerInstance.RejectMedia)
|
||||
|
||||
api := r.Group("/api")
|
||||
|
||||
|
Reference in New Issue
Block a user