sign.go 585 B

123456789101112131415161718192021222324252627282930313233343536
  1. package sign
  2. import (
  3. "sync"
  4. "time"
  5. "github.com/IceWhaleTech/CasaOS/pkg/sign"
  6. )
  7. var once sync.Once
  8. var instance sign.Sign
  9. func Sign(data string) string {
  10. return NotExpired(data)
  11. }
  12. func WithDuration(data string, d time.Duration) string {
  13. once.Do(Instance)
  14. return instance.Sign(data, time.Now().Add(d).Unix())
  15. }
  16. func NotExpired(data string) string {
  17. once.Do(Instance)
  18. return instance.Sign(data, 0)
  19. }
  20. func Verify(data string, sign string) error {
  21. once.Do(Instance)
  22. return instance.Verify(data, sign)
  23. }
  24. func Instance() {
  25. instance = sign.NewHMACSign([]byte("token"))
  26. }