package JwtUtil import ( "blog/internal/model/admin" "log" "time" "github.com/kataras/iris/v12/middleware/jwt" ) var signatureSharedKey = []byte("sercrethatmaycontainch@r32length") func Sign(claims admin.SysUser) string { log.Println(claims) // Sign and generate compact form token. token, err := jwt.Sign(jwt.HS256, signatureSharedKey, claims, jwt.MaxAge(10*time.Minute)) if err != nil { log.Println(err) // c.Ctx.StopWithStatus(iris.StatusInternalServerError) return "" } tokenString := string(token) // or jwt.BytesToString return tokenString } func Protected(jwtToken string) (user *admin.SysUser, err error) { verifiedToken, err := jwt.Verify(jwt.HS256, signatureSharedKey, []byte(jwtToken)) time := verifiedToken.StandardClaims.ExpiresAt() log.Println("Expiry at:", time) if err != nil { // ctx.StopWithStatus(iris.StatusUnauthorized) return nil, err } var claims admin.SysUser verifiedToken.Claims(&claims) log.Println(claims) return }