Tokey.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package Account
  2. import (
  3. "ColdP_server/conf"
  4. "fmt"
  5. "github.com/astaxie/beego/cache"
  6. _ "github.com/astaxie/beego/cache/redis"
  7. uuid "github.com/satori/go.uuid"
  8. "time"
  9. )
  10. var redisCache_Tokey cache.Cache
  11. func init() {
  12. //注册模型
  13. //orm.RegisterModel(new(Tokey))
  14. config := fmt.Sprintf(`{"key":"%s","conn":"%s","dbNum":"%s","password":"%s"}`,
  15. "redis_Cold_User_Tokey", conf.Redis_address, conf.Redis_dbNum, conf.Redis_password)
  16. fmt.Println(config)
  17. var err error
  18. redisCache_Tokey, err = cache.NewCache("redis", config)
  19. if err != nil || redisCache_Tokey == nil {
  20. errMsg := "failed to init redis"
  21. fmt.Println(errMsg, err)
  22. }
  23. }
  24. // ---------------- Redis -------------------
  25. // Redis_Set(m.T_sn,m) // Redis 更新缓存
  26. func Add_Tokey_Set(Uuid, Pid string) string {
  27. var Tokey string
  28. for true {
  29. Tokey = uuid.NewV4().String()
  30. if !redisCache_Tokey.IsExist(Tokey) {
  31. break
  32. }
  33. fmt.Print("申请 TOKEY 重复!重新生成。", Tokey)
  34. }
  35. userLoginInfo := fmt.Sprintf("%s|%s", Uuid, Pid)
  36. redisCache_Tokey.Put(Tokey, userLoginInfo, 2*time.Hour)
  37. return Tokey
  38. }
  39. // if r,is :=Redis_Get(T_sn);is{
  40. // return r,nil
  41. // }
  42. func Redis_Tokey_Get(Tokey string) (string, bool) {
  43. if len(Tokey) < 10 {
  44. return "", false
  45. }
  46. if redisCache_Tokey.IsExist(Tokey) {
  47. //println("找到key:",key)
  48. v := redisCache_Tokey.Get(Tokey)
  49. value := string(v.([]byte)) //这里的转换很重要,Get返回的是interface
  50. redisCache_Tokey.Put(Tokey, value, 2*time.Hour) // 重新计次
  51. return value, true
  52. }
  53. //println("没有 找到key:",key)
  54. return "", false
  55. }