cookie.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package xnet
  2. import (
  3. "github.com/zellyn/kooky/chrome"
  4. "log"
  5. "net/http"
  6. "os"
  7. "path/filepath"
  8. "strings"
  9. )
  10. // @title LoadChromeCookies
  11. // @description 从本地chrome路径加载指定domain的cookies
  12. // @param domain string 需要提起cookie的domain
  13. // @return
  14. func LoadChromeCookies(domain string) ([]*http.Cookie, error) {
  15. var cookies []*http.Cookie
  16. dir, _ := os.UserHomeDir()
  17. cookiesFile := filepath.Join(dir, "/AppData/Local/Google/Chrome/User Data/Default/Cookies")
  18. chromeCookies, err := chrome.ReadCookies(cookiesFile)
  19. if err != nil {
  20. log.Printf("ReadCookies error : %v\n", err)
  21. return cookies, err
  22. }
  23. for _, cookie := range chromeCookies {
  24. if strings.Contains(cookie.Domain, domain) == true {
  25. //fmt.Println(cookie)
  26. cookies = append(cookies, &http.Cookie{
  27. Name: cookie.Name,
  28. Value: cookie.Value,
  29. Path: cookie.Path,
  30. Domain: cookie.Domain,
  31. Expires: cookie.Expires,
  32. })
  33. }
  34. }
  35. return cookies, nil
  36. }
  37. // @title LoadChromeCookiesVer1
  38. // @description 从本地chrome路径加载指定domain的cookies
  39. // @param domain string 需要提起cookie的domain
  40. // @return
  41. func LoadChromeCookiesVer1(domain, cookiesPath string) ([]*http.Cookie, error) {
  42. var cookies []*http.Cookie
  43. chromeCookies, err := chrome.ReadCookies(cookiesPath)
  44. if err != nil {
  45. log.Printf("ReadCookies error : %v\n", err)
  46. return cookies, err
  47. }
  48. for _, cookie := range chromeCookies {
  49. if strings.Contains(cookie.Domain, domain) == true {
  50. //fmt.Println(cookie)
  51. cookies = append(cookies, &http.Cookie{
  52. Name: cookie.Name,
  53. Value: cookie.Value,
  54. Path: cookie.Path,
  55. Domain: cookie.Domain,
  56. Expires: cookie.Expires,
  57. })
  58. }
  59. }
  60. return cookies, nil
  61. }