token.go 930 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. /*
  2. * @desc:token功能
  3. * @company:云南奇讯科技有限公司
  4. * @Author: yixiaohu
  5. * @Date: 2022/3/8 15:54
  6. */
  7. package service
  8. import (
  9. "context"
  10. "github.com/gogf/gf/v2/net/ghttp"
  11. "github.com/tiger1103/gfast-token/gftoken"
  12. )
  13. type IGfToken interface {
  14. GenerateToken(ctx context.Context, key string, data interface{}) (keys string, err error)
  15. Middleware(group *ghttp.RouterGroup) error
  16. ParseToken(r *ghttp.Request) (*gftoken.CustomClaims, error)
  17. IsLogin(r *ghttp.Request) (b bool, failed *gftoken.AuthFailed)
  18. GetRequestToken(r *ghttp.Request) (token string)
  19. RemoveToken(ctx context.Context, token string) (err error)
  20. GetTokenData(ctx context.Context, token string) (tData *gftoken.TokenData, key string, err error)
  21. }
  22. var gt IGfToken
  23. func RegisterGToken(gtk IGfToken) {
  24. gt = gtk
  25. }
  26. func GfToken() IGfToken {
  27. if gt == nil {
  28. panic("implement not found for interface IGfToken, forgot register?")
  29. }
  30. return gt
  31. }