mirror of
https://github.com/ngoduykhanh/wireguard-ui.git
synced 2025-07-09 17:34:25 +03:00
Add apikey
This commit is contained in:
parent
aadf099f50
commit
73cd5ae94d
5 changed files with 50 additions and 9 deletions
|
@ -47,11 +47,31 @@ func (t *TemplateRegistry) Render(w io.Writer, name string, data interface{}, c
|
|||
return tmpl.ExecuteTemplate(w, "base.html", data)
|
||||
}
|
||||
|
||||
func apiKeyMiddleware(next echo.HandlerFunc) echo.HandlerFunc {
|
||||
return func(c echo.Context) error {
|
||||
apiKey := c.Request().Header.Get("X-API-Key")
|
||||
if apiKey == "" {
|
||||
apiKey = c.QueryParam("api_key")
|
||||
}
|
||||
sess, err := session.Get("session", c)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
sess.Values["api_key"] = apiKey
|
||||
err = sess.Save(c.Request(), c.Response())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return next(c)
|
||||
}
|
||||
}
|
||||
// New function
|
||||
func New(tmplBox *rice.Box, extraData map[string]string, secret []byte) *echo.Echo {
|
||||
e := echo.New()
|
||||
e.Use(session.Middleware(sessions.NewCookieStore(secret)))
|
||||
|
||||
store := sessions.NewCookieStore(secret)
|
||||
e.Use(session.Middleware(store))
|
||||
e.Use(apiKeyMiddleware)
|
||||
// read html template file to string
|
||||
tmplBaseString, err := tmplBox.String("base.html")
|
||||
if err != nil {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue