Add authentication function

Signed-off-by: Asai Neko <sugar@sne.moe>
This commit is contained in:
2025-12-24 20:43:19 +08:00
parent fd4da4f1a1
commit cd2bcd597c
11 changed files with 290 additions and 13 deletions

View File

@@ -0,0 +1,34 @@
package turnstile
import (
"encoding/json"
"net/http"
"net/url"
"github.com/spf13/viper"
)
func VerifyTurnstile(token, ip string) (bool, error) {
form := url.Values{}
form.Set("secret", viper.GetString("secrets.turnstile"))
form.Set("response", token)
form.Set("remoteip", ip)
resp, err := http.PostForm(
"https://challenges.cloudflare.com/turnstile/v0/siteverify",
form,
)
if err != nil {
return false, err
}
defer resp.Body.Close()
var result struct {
Success bool `json:"success"`
}
if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
return false, err
}
return result.Success, nil
}