First part of httpOnly JWT cookie implementation

This commit is contained in:
Florian Sylvain
2023-01-12 00:04:26 +01:00
parent a09ae668ce
commit 200efe0e90
4 changed files with 43 additions and 20 deletions
+15 -6
View File
@@ -10,10 +10,12 @@ import (
"github.com/joho/godotenv"
)
var ginMode string
var apiPort string
var frontPort string
var hostAddress string
var (
ginMode string
apiPort string
frontPort string
hostAddress string
)
func initEnvVariables() {
if godotenv.Load() != nil {
@@ -50,6 +52,12 @@ func corsMiddleware(c *gin.Context) {
c.Next()
}
func jwtProxyMiddleware(c *gin.Context) {
jwtToken, _ := c.Cookie("jwt")
c.Request.Header.Set("Authorization", fmt.Sprintf("Bearer %v", jwtToken))
c.Next()
}
func initArticlesRoutes(r *gin.Engine) {
articlesRouter := r.Group("/articles")
articlesRouter.Use(corsMiddleware, api.AuthMiddleware.MiddlewareFunc())
@@ -63,10 +71,11 @@ func initArticlesRoutes(r *gin.Engine) {
func initGin() {
r := gin.Default()
r.Use(corsMiddleware)
r.Use(jwtProxyMiddleware, corsMiddleware)
if ginMode == "release" {
gin.SetMode(ginMode)
api.AuthMiddleware.SecureCookie = true
}
initBasicRoutes(r)
@@ -77,6 +86,6 @@ func initGin() {
func main() {
initEnvVariables()
initJWT()
initGin()
initJWT()
}