wp-go/internal/actions/login.go

41 lines
923 B
Go
Raw Normal View History

2022-09-18 04:34:48 +00:00
package actions
2022-09-18 03:57:43 +00:00
import (
"fmt"
2023-01-21 11:31:23 +00:00
str "github.com/fthvgb1/wp-go/helper/strings"
2023-02-14 11:47:47 +00:00
"github.com/fthvgb1/wp-go/internal/phphelper"
"github.com/fthvgb1/wp-go/internal/wpconfig"
2022-09-18 03:57:43 +00:00
"github.com/gin-contrib/sessions"
"github.com/gin-gonic/gin"
2022-09-19 14:25:25 +00:00
"net/http"
2022-09-18 03:57:43 +00:00
"strings"
)
2022-09-18 04:34:48 +00:00
func Login(c *gin.Context) {
2022-09-18 03:57:43 +00:00
password := c.PostForm("post_password")
ref := c.Request.Referer()
if ref == "" {
ref = "/"
}
if password == "" || strings.Replace(password, " ", "", -1) == "" {
2022-09-19 14:25:25 +00:00
c.Redirect(http.StatusFound, ref)
2022-09-18 03:57:43 +00:00
return
}
s := sessions.Default(c)
s.Set("post_password", password)
err := s.Save()
if err != nil {
c.Error(err)
return
}
2023-02-14 11:47:47 +00:00
pass, err := phphelper.NewPasswordHash(8, true).HashPassword(password)
if err != nil {
c.Error(err)
return
}
cohash := fmt.Sprintf("wp-postpass_%s", str.Md5(wpconfig.GetOption("siteurl")))
c.SetCookie(cohash, pass, 24*3600, "/", "", false, false)
2022-09-19 14:25:25 +00:00
c.Redirect(http.StatusFound, ref)
2022-09-18 03:57:43 +00:00
}