link_home.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package handler
  2. import (
  3. "fmt"
  4. "net/http"
  5. "strings"
  6. "github.com/bjdgyc/anylink/admin"
  7. "github.com/bjdgyc/anylink/dbdata"
  8. )
  9. func LinkHome(w http.ResponseWriter, r *http.Request) {
  10. // fmt.Println(r.RemoteAddr)
  11. // hu, _ := httputil.DumpRequest(r, true)
  12. // fmt.Println("DumpHome: ", string(hu))
  13. connection := strings.ToLower(r.Header.Get("Connection"))
  14. userAgent := strings.ToLower(r.UserAgent())
  15. if connection == "close" && (strings.Contains(userAgent, "anyconnect") || strings.Contains(userAgent, "openconnect")) {
  16. w.Header().Set("Connection", "close")
  17. w.WriteHeader(http.StatusBadRequest)
  18. return
  19. }
  20. index := &dbdata.SettingOther{}
  21. dbdata.SettingGet(index)
  22. w.WriteHeader(http.StatusOK)
  23. if index.Homeindex == "" {
  24. index.Homeindex = "AnyLink 是一个企业级远程办公 SSL VPN 软件,可以支持多人同时在线使用。"
  25. }
  26. fmt.Fprintln(w, index.Homeindex)
  27. }
  28. func LinkOtpQr(w http.ResponseWriter, r *http.Request) {
  29. _ = r.ParseForm()
  30. idS := r.FormValue("id")
  31. jwtToken := r.FormValue("jwt")
  32. data, err := admin.GetJwtData(jwtToken)
  33. if err != nil || idS != fmt.Sprint(data["id"]) {
  34. w.WriteHeader(http.StatusForbidden)
  35. return
  36. }
  37. admin.UserOtpQr(w, r)
  38. }