package main import ( "embed" "github.com/gin-gonic/gin" log "github.com/sirupsen/logrus" "html/template" "io/fs" m "k8s-manager/src" "net/http" ) //go:embed template/* static/* var f embed.FS func main() { m.InitClient() r := gin.Default() r.SetFuncMap(template.FuncMap{ "inc": m.Inc, }) tmp := template.Must(template.New(""). Funcs(template.FuncMap{ "inc": m.Inc, }). ParseFS(f, "template/*")) r.SetHTMLTemplate(tmp) fp, _ := fs.Sub(f, "static") r.StaticFS("/static", http.FS(fp)) r.GET("/index", m.JWTAuthMiddleware, m.AppPage) r.GET("/apps", m.JWTAuthMiddleware, m.GetAppsController) r.POST("/app", m.JWTAuthMiddleware, m.CreateUpdateDeleteApp) r.PUT("/app", m.JWTAuthMiddleware, m.CreateUpdateDeleteApp) r.DELETE("/app", m.JWTAuthMiddleware, m.CreateUpdateDeleteApp) r.POST("/dep", m.JWTAuthMiddleware, m.CreateDeleteDeployment) r.DELETE("/dep", m.JWTAuthMiddleware, m.CreateDeleteDeployment) r.GET("/login/:username", Test) err := r.Run() if err != nil { log.Fatal(err) } } func Test(c *gin.Context) { username := c.Param("username") if username == "" { c.JSON(http.StatusNotFound, gin.H{ "code": http.StatusNotFound, "msg": "No user name.", }) } else { token, err := m.GenerateToken(username) if err != nil { log.Error(err) c.Abort() return } c.SetCookie("Authorization", "Bearer "+token, 0, "", "", false, false) c.Header("Authorization", "Bearer "+token) c.Header("Cache-Control", "no-store") c.Redirect(http.StatusTemporaryRedirect, "/index") } }