golang通用后台管理系统10(退出登录,注销token)

1.实现思路:将登录用户的token加入黑名单

2.

复制代码
//1.2 用户退出
exploreRouter.POST("/logout", sysCtrl.Logout)

3.loginController.go

复制代码
//用户退出
func Logout(c *gin.Context) {
   logger := commonLog.InitLogger()

   sysUser := service.GetProfile1(c)
   fmt.Println("UUID=============================" + sysUser.Uuid)
   blacklist := service.NewBlacklist()
   logger.Println(constant.LOGINFO() + "用户名称为:"+sysUser.UserName +"; 退出成功!!!")

   // 将token添加到黑名单
   blacklist.AddToken(sysUser.Token)
}

4.LoginOutService.go

复制代码
package service
import (
"sync"
)

// Blacklist是一个简单的结构体,用于管理token黑名单
type Blacklist struct {
	mu    sync.Mutex
	tokens map[string]bool
}

// NewBlacklist创建一个新的Blacklist实例
func NewBlacklist() *Blacklist {
	return &Blacklist{
		tokens: make(map[string]bool),
	}
}

// AddToken将指定的token添加到黑名单中
func (b *Blacklist) AddToken(tokenString string) {
	b.mu.Lock()
	b.tokens[tokenString] = true
	b.mu.Unlock()
}

// IsTokenBlacklisted检查指定的token是否在黑名单中
func (b *Blacklist) IsTokenBlacklisted(tokenString string) bool {
	b.mu.Lock()
	defer b.mu.Unlock()
	b2 := b.tokens[tokenString]
	return b2 && b.tokens[tokenString] == true
}
相关推荐
fy1216317 小时前
GO 快速升级Go版本
开发语言·redis·golang
童话ing19 小时前
【Golang】Golang Map数据结构底层原理
数据结构·golang·哈希算法
GDAL20 小时前
go.mod 文件讲解
golang·go.mod
Java面试题总结20 小时前
Go图像处理基础: image包深度指南
图像处理·算法·golang
robch1 天前
golang container/heap 是一个为任意类型实现堆(优先队列)接口的包
数据结构·算法·golang
leonkay1 天前
Golang语言闭包完全指南
开发语言·数据结构·后端·算法·架构·golang
echome8882 天前
Go 语言并发编程实战:用 Goroutine 和 Channel 构建高性能任务调度器
开发语言·后端·golang
yuanlaile2 天前
2026后端趋势:Java 老了?Go 才是未来?
java·后端·golang·go与java·后端学什么
Mr -老鬼2 天前
Go存储架构选型实战:单库、双库还是多库?——基于核心元数据+动态表场景的技术解析
大数据·架构·golang
ithadoop2 天前
go面试知识点分类整理
golang·go