token.go 973 B

1234567891011121314151617181920212223242526272829303132333435
  1. package tool
  2. import (
  3. "fmt"
  4. "github.com/astaxie/beego"
  5. "github.com/dgrijalva/jwt-go"
  6. "strconv"
  7. "time"
  8. )
  9. func CreateToken(Phone string) string {
  10. token := jwt.New(jwt.SigningMethodHS256)
  11. claims := make(jwt.MapClaims)
  12. tokenexp, _ := strconv.Atoi(beego.AppConfig.String("Tokenexp"))
  13. claims["exp"] = time.Now().Add(time.Hour * time.Duration(tokenexp)).Unix()
  14. claims["iat"] = time.Now().Unix()
  15. claims["phone"] = Phone
  16. token.Claims = claims
  17. tokenString, _ := token.SignedString([]byte(beego.AppConfig.String("TokenSecrets")))
  18. return tokenString
  19. }
  20. func CheckToken(tokenString string) string {
  21. Phone := ""
  22. token, _ := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {
  23. if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
  24. return nil, fmt.Errorf("Unexpected signing method")
  25. }
  26. return []byte(beego.AppConfig.String("TokenSecrets")), nil
  27. })
  28. claims, _ := token.Claims.(jwt.MapClaims)
  29. Phone = claims["phone"].(string)
  30. return Phone
  31. }