sys_jwt_blacklist.go 826 B

12345678910111213141516171819202122232425262728293031323334
  1. package model
  2. import (
  3. "gin-vue-admin/global"
  4. "github.com/jinzhu/gorm"
  5. )
  6. type JwtBlacklist struct {
  7. gorm.Model
  8. Jwt string `gorm:"type:text"`
  9. }
  10. func (j *JwtBlacklist) JsonInBlacklist() (err error) {
  11. err = global.GVA_DB.Create(j).Error
  12. return
  13. }
  14. //判断JWT是否在黑名单内部
  15. func (j *JwtBlacklist) IsBlacklist(Jwt string) bool {
  16. isNotFound := global.GVA_DB.Where("jwt = ?", Jwt).First(j).RecordNotFound()
  17. return !isNotFound
  18. }
  19. //判断当前用户是否在线
  20. func (j *JwtBlacklist) GetRedisJWT(userName string) (err error, RedisJWT string) {
  21. RedisJWT, err = global.GVA_REDIS.Get(userName).Result()
  22. return err, RedisJWT
  23. }
  24. //设置当前用户在线
  25. func (j *JwtBlacklist) SetRedisJWT(userName string) (err error) {
  26. err = global.GVA_REDIS.Set(userName, j.Jwt, 1000*1000*1000*60*60*24*7).Err()
  27. return err
  28. }