11 Star 92 Fork 20

goflyfox / gtoken

 / 详情

bug validToken 验证Token

待办的
创建于  
2022-08-30 23:40
// validToken 验证Token
func (m *GfToken) validToken(ctx context.Context, token string) Resp {
	if token == "" {
		return Unauthorized(MsgErrTokenEmpty, "")
	}

	decryptToken := m.DecryptToken(ctx, token)
	if !decryptToken.Success() {
		return decryptToken
	}

	userKey := decryptToken.GetString(KeyUserKey)
	uuid := decryptToken.GetString(KeyUuid)

	userCacheResp := m.getToken(ctx, userKey)
	if !userCacheResp.Success() {
		return userCacheResp
	}

	//if uuid != userCacheResp.GetString(KeyUuid) {
		//g.Log().Error(ctx, msgLog(MsgErrAuthUuid)+", decryptToken:"+decryptToken.Json()+" cacheValue:"+gconv.String(userCacheResp.Data))
		return Unauthorized(MsgErrAuthUuid, "")
	}

	return userCacheResp
}
// validToken 验证Token
func (m *GfToken) validToken(ctx context.Context, token string) Resp {
	if token == "" {
		return Unauthorized(MsgErrTokenEmpty, "")
	}

	decryptToken := m.DecryptToken(ctx, token)
	if !decryptToken.Success() {
		return decryptToken
	}

	userKey := decryptToken.GetString(KeyUserKey)
	uuid := decryptToken.GetString(KeyUuid)

	userCacheResp := m.getToken(ctx, userKey)
	if !userCacheResp.Success() {
		return userCacheResp
	}

        //这里的代码会打印日志,无法捕获处理,
//测试方式可以使用过期或错误的TOKEN触发。
或校验失败后,应返回错误的Resp给客户,而不是直接打印出来无法捕获。
	//if uuid != userCacheResp.GetString(KeyUuid) {
	//	//g.Log().Error(ctx, msgLog(MsgErrAuthUuid)+", decryptToken:"+decryptToken.Json()+" cacheValue:"+gconv.String(userCacheResp.Data))
	//	return Unauthorized(MsgErrAuthUuid, "")
	//}

	return userCacheResp
}

评论 (2)

wordgao 创建了任务

Unauthorized(MsgErrAuthUuid, "")
这个函数已经把错误写进去了
然后会通过 m.AuthAfterFunc(r, tokenResp) 传出去
你可以自定义AuthAfterFunc的函数通过 respData.Success()来判断自定义返回你想要返回的结果

这个错误log应该屏蔽的 过期的token会触发

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
Go
1
https://gitee.com/goflyfox/gtoken.git
git@gitee.com:goflyfox/gtoken.git
goflyfox
gtoken
gtoken

搜索帮助