func_web.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /*
  2. * @description:web共用方法
  3. * @Author: CP
  4. * @Date: 2020-08-21 11:12:56
  5. * @FilePath: \construction_management\comm\func_web.go
  6. */
  7. package comm
  8. import (
  9. "net/http"
  10. "net"
  11. )
  12. // 得到客户端IP地址
  13. func ClientIP(request *http.Request) string {
  14. host, _, _ := net.SplitHostPort(request.RemoteAddr)
  15. return host
  16. }
  17. // 跳转URL
  18. func Redirect(writer http.ResponseWriter, url string) {
  19. writer.Header().Add("Location", url)
  20. writer.WriteHeader(http.StatusFound)
  21. }
  22. // // 从cookie中得到当前登录的用户
  23. // func GetLoginUser(request *http.Request) *models.ObjLoginuser {
  24. // c, err := request.Cookie("lottery_loginuser")
  25. // if err != nil {
  26. // return nil
  27. // }
  28. // params, err := url.ParseQuery(c.Value)
  29. // if err != nil {
  30. // return nil
  31. // }
  32. // uid, err := strconv.Atoi(params.Get("uid"))
  33. // if err != nil || uid < 1 {
  34. // return nil
  35. // }
  36. // // Cookie最长使用时长
  37. // now, err := strconv.Atoi(params.Get("now"))
  38. // if err != nil || NowUnix()-now > 86400*30 {
  39. // return nil
  40. // }
  41. // //// IP修改了是不是要重新登录
  42. // //ip := params.Get("ip")
  43. // //if ip != ClientIP(request) {
  44. // // return nil
  45. // //}
  46. // // 登录信息
  47. // loginuser := &models.ObjLoginuser{}
  48. // loginuser.Uid = uid
  49. // loginuser.Username = params.Get("username")
  50. // loginuser.Now = now
  51. // loginuser.Ip = ClientIP(request)
  52. // loginuser.Sign = params.Get("sign")
  53. // if err != nil {
  54. // log.Println("fuc_web GetLoginUser Unmarshal ", err)
  55. // return nil
  56. // }
  57. // sign := createLoginuserSign(loginuser)
  58. // if sign != loginuser.Sign {
  59. // log.Println("fuc_web GetLoginUser createLoginuserSign not sign", sign, loginuser.Sign)
  60. // return nil
  61. // }
  62. // return loginuser
  63. // }
  64. // // 将登录的用户信息设置到cookie中
  65. // func SetLoginuser(writer http.ResponseWriter, loginuser *models.ObjLoginuser) {
  66. // if loginuser == nil || loginuser.Uid < 1 {
  67. // c := &http.Cookie{
  68. // Name: "lottery_loginuser",
  69. // Value: "",
  70. // Path: "/",
  71. // MaxAge: -1,
  72. // }
  73. // http.SetCookie(writer, c)
  74. // return
  75. // }
  76. // if loginuser.Sign == "" {
  77. // loginuser.Sign = createLoginuserSign(loginuser)
  78. // }
  79. // params := url.Values{}
  80. // params.Add("uid", strconv.Itoa(loginuser.Uid))
  81. // params.Add("username", loginuser.Username)
  82. // params.Add("now", strconv.Itoa(loginuser.Now))
  83. // params.Add("ip", loginuser.Ip)
  84. // params.Add("sign", loginuser.Sign)
  85. // c := &http.Cookie{
  86. // Name: "lottery_loginuser",
  87. // Value: params.Encode(),
  88. // Path: "/",
  89. // }
  90. // http.SetCookie(writer, c)
  91. // }
  92. // // 根据登录用户信息生成加密字符串
  93. // func createLoginuserSign(loginuser *models.ObjLoginuser) string {
  94. // str := fmt.Sprintf("uid=%d&username=%s&secret=%s", loginuser.Uid, loginuser.Username, conf.CookieSecret)
  95. // return CreateSign(str)
  96. // }