在Golang中使用JWT令牌在其他函数中调用令牌值的方法

huangapple go评论81阅读模式
英文:

Calling Token Values in Other Functions with JWT Token in Golang

问题

我正在使用golang开发一个项目。我使用的框架有gin、gorm、jwt和crypto。当我在用户控制器页面中使用c.GET时,我定义了登录和注册函数以及令牌,它可以正常工作。但是当我尝试在其他页面中使用它时,它返回nil。我该如何使其在其他页面中也能正常工作?

这是我的验证函数,它可以正常工作:

func Validate(c *gin.Context) {
    user, _ := c.Get("user")
    un := user.(Models.User).UserName
    c.JSON(http.StatusOK, gin.H{
        "message":  user,
        "username": un,
    })
}

这是我在其他页面中的调用,它返回nil:

userck, _ := c.Get("user")
i := userck.(Models.User).ID

谢谢你的帮助。

英文:

I am working on a project using golang. The frameworks I used are gin,gorm, jwt, crypto. When I used c.GET in user controllers page which I define login and signup function as well as token it works but when I try to use it on other pages it returns nil.How can I make this work in other pages too?

Here is my validate function which works;

func Validate(c *gin.Context) {
	user, _ := c.Get("user")
	un := user.(Models.User).UserName
	c.JSON(http.StatusOK, gin.H{
		"message":  user,
		"username": un,
	})
}

Here is my call on the other page which returns nil;

userck, _ := c.Get("user")
	i := userck.(Models.User).ID

Thank you for your help.

答案1

得分: 1

谢谢你的时间,我对后端编程完全是新手。我发现我需要为所有路由添加中间件进行验证,而且它起作用了。

英文:

Thank you for your time, I am all new to backend programming. I figure out that I needed to add middleware to all roots for validation and it worked.

huangapple
  • 本文由 发表于 2022年8月10日 14:47:02
  • 转载请务必保留本文链接:https://go.coder-hub.com/73301795.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定