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
}
相关推荐
qq_452396233 小时前
第二篇:《Go 开发环境搭建:SDK、IDE、Module 与 Hello World》
开发语言·ide·golang
FellAveal7 小时前
【Go语言入门学习笔记】Part13.结构体与接口
笔记·学习·golang
microrain7 小时前
从设备孤岛到智能协同:SagooIoT场景联动实战解析
物联网·golang·sagooiot
灯澜忆梦11 小时前
GO_网络编程---网络协议
网络·网络协议·golang
William.csj21 小时前
BaiduPCS-Go——下载百度网盘文件的工具
golang·baidupc
kebeiovo1 天前
游戏服务端开发:Actor模型详解(Go语言)
开发语言·后端·golang
Wang's Blog1 天前
Go-Zero项目开发9: 微服务治理之服务注册中心
微服务·golang
布朗克1681 天前
Go 入门到精通-27-泛型编程
开发语言·golang·xcode·泛型编程
名字还没想好☜1 天前
Go 用 errgroup 管理并发子任务:错误收敛、取消传播与限流
开发语言·后端·golang·go·并发
web守墓人1 天前
【go语言】gotar:使用go语言复刻tar命令,并加入7z支持,可独立运行在windows、linux、macos上
linux·macos·golang