Как проверить JWS с помощью пакета square / go -jose - PullRequest
0 голосов
/ 26 февраля 2020

Я генерирую JSON веб-подпись в JavaScript с использованием пакета node-jws (https://www.npmjs.com/package/jws). В заголовках я даю крит: ["exp"] и exp: someTimeStamp. Приведенный ниже фрагмент кода используется для создания JWS:

let token = jws.sign({
  header: { alg: 'HS256', crit: ["exp"], exp: Math.floor(Date.now() / 1000) + (60 * 60) },
  payload: "somestring" ,
  privateKey: 'supersecret',
});

Я проверяю этот токен в Golang, используя приведенный ниже фрагмент:

import (
    "github.com/square/go-jose"
)

func main() {
    jsonWebSig, err := jose.ParseSigned(token)

    if err != nil {
        panic(err)
    }
    payload, err := jsonWebSig.Verify([]byte("supersecret"))

    fmt.Println(string(payload))
    fmt.Println(err)
}

Код выше в GO работает, если я не дам крит: ["exp"] в заголовке при генерации токена в JS. В противном случае выдает ошибку «1010».

Я должен использовать crit: ["exp"] в заголовках любой ценой. Есть ли способ проверить это?

...