Skip to content

jwt: invalid token form #15

@ezewu

Description

@ezewu
package main

import (
	"github.com/kataras/iris/v12"
	"github.com/kataras/iris/v12/apps"
	"github.com/kataras/jwt"
	"github.com/rs/cors"
	"log"
	"time"
)

type UserClaims struct {
	ID       int    `json:"id"`
	Username string `json:"username"`
}

func main() {
	app := iris.New()

	c := cors.New(cors.Options{
		AllowedOrigins:   []string{"*"},
		AllowCredentials: true,
		Debug:            false,
	})
	app.WrapRouter(c.ServeHTTP)

	app.Get("/a", func(ctx iris.Context) {
		var sharedKey = []byte("sercrethatmaycontainch@r$32chars")

		claims := UserClaims{
			ID:       123456,
			Username: "Username",
		}

		accessToken, tErr := jwt.Sign(jwt.HS256, sharedKey, claims, jwt.MaxAge(20000*time.Hour))
		if tErr != nil {
			log.Println("accessToken err")
		}
		refreshToken, rErr := jwt.Sign(jwt.HS256, sharedKey, claims, jwt.MaxAge(30000*time.Hour))
		if rErr != nil {
			log.Println("refreshToken err")
		}

		_ = ctx.JSON(iris.Map{
			"accessToken":  accessToken,
			"refreshToken": refreshToken,
		})
	})

	app.Get("/b", func(ctx iris.Context) {
		type RefreshToken struct {
			RefreshToken string `json:"refreshToken"`
		}
		var rt RefreshToken

		if err := ctx.ReadJSON(&rt); err != nil {
			apps.Get().Logger().Error("---------------- 读取参数失败", err.Error())
		}

		var sharedKey = []byte("sercrethatmaycontainch@r$32chars")

		verifiedToken, err := jwt.Verify(jwt.HS256, sharedKey, []byte(rt.RefreshToken))
		if err != nil {
			log.Println("1111111111111111111111111111111", err)
		} else {
			var u UserClaims
			err = verifiedToken.Claims(&u)
			log.Println(u.ID, " -------------------------- ", u.Username)
			log.Println("2222222222222222222222222222222")
		}
	})

	_ = app.Listen(":9000", nil)
}

Hello, is there a typo there?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions