GOLANG从内存加载JWK(JSON Web密钥),而不是从URL加载?取来

GOLANG从内存加载JWK(JSON Web密钥),而不是从URL加载?取来,go,jwt,Go,Jwt,我使用“github.com/lestrrat/go jwx/jwk”来验证Jason Web令牌(JWT) JWK库具有从URL加载密钥的强大功能,但这将在无服务器环境中运行,因此我希望缓存密钥,而不是像这样获取密钥: set, err := jwk.Fetch(keyUrl) 我正试图弄清楚如何直接加载它们,或者从我已有的键创建它们 这些键是JSON格式 {"keys": [{"alg":"RS256","e":"AQAB","n":"jqm5oX5Vth4JW1gZQHywIki2beY

我使用“github.com/lestrrat/go jwx/jwk”来验证Jason Web令牌(JWT)

JWK库具有从URL加载密钥的强大功能,但这将在无服务器环境中运行,因此我希望缓存密钥,而不是像这样获取密钥:

set, err := jwk.Fetch(keyUrl)
我正试图弄清楚如何直接加载它们,或者从我已有的键创建它们

这些键是JSON格式

{"keys":
[{"alg":"RS256","e":"AQAB","n":"jqm5oX5Vth4JW1gZQHywIki2beYCgBSL-
EYlefDUlI6SShtEKfi-vWYbFh2pNNUAE4NHuYpYP-
FG1uRSKs6WK2k6KMB2Hyx3hBkWyu7Aqo_pb1WItkPSZS-AWOMp4N-

我就是找不到一个这样做的例子。一定有办法,以防其他人陷入困境,尽管我认为这不太可能,谢谢斯蒂芬和乔纳的耐心

Parse正是我所需要的。甚至还有一个字符串选项

set, err := jwk.ParseString(`{"keys":[{"alg":"RS256","e":"AQAB","n":"jqm5oX5Vth4JW1gZQHywIki2beYCgBSL-EYlefDUlI6SShtEKfi-vWYbFh2pNNUAE4NHuYpYP-FG1uRSKs6WK2k6KMB2Hyx3hBkWyu7Aqo_pb1WItkPSZS-AWOMp4N-ENPGyNQ4u2ill17ZwBKt1wgDvdaWpNaqPEcSaUNSXA7ZD5scFFnZt36r6crhgK7vHXChhXU3nlKEN2OwFdyEGdX01l-HxgPk0HPIfnUyYxuGI_CL-7aV_rf3KY4uw6yNfEO0jom0NZ-I8F1NzpbaDxj4hD4xlDZIQI9PxLq4nAtb4ZVQC1xhnRv-uufs9Wa4XFjs6jJSWGcWV1Z7K5HmMaw","kid":"tNtnDgeXepbf2NZlVjzKGdtPU9mnOidtw0puo3s-_8Y","kty":"RSA","use":"sig"},{"alg":"RS256","e":"AQAB","n":"o_CYYN5Lo9XuCRADNxqDTVolcWshv7LD7EmwFCvtbdHErvfOQPHyAFMLMDKracToe2Rg7cBihYC_wgHRItXAgxAM6P7mNT_DvbLpp2HtbMtmYLtWyGqHJsJQE9gNSOMsxEugxq9lpGjROiU2nZm7TZ-QwVV-F7dfBl0NBVy5oFbTCRUDxFcKOr_zh3xK-fRIsJbqbB4VPt8IhA_GjvjyoMlH0pfhoRqDMWk8vLXHhRxYlT5bZP1PDulFMGGO8KH7Cvh4D0cZE9mSiUFyVlDDzCbAH88a0TAGYkqERdVfHBYaTsCCseBqsvUoqbdzQwd2fOLf-N0jpSdNMNxHGNwl3w","kid":"ddPUDDyUpH2N5wGSXvnqQZy-OmTFSVu5PYansjpsoAs","kty":"RSA","use":"sig"}]}`)

你试过了吗?是的,如果我使用jwk.Fetch方法从URL加载密钥,我就可以进行解析了。如果我从字符串或字节数组加载密钥,而不是从URL加载密钥,我正在尝试找出如何使其工作。有一个jwk.Parse(buf[]字节)和一个jwk.ParseString(字符串)。您是否有使用这些代码但不按描述工作的代码?我联系了库的作者。同时。我要做的是从字符串中加载密钥,而不是从URL中提取密钥。我想这个调用应该是这样的:set,err:=jwk.New(我的JSON字符串)。。。我只是找不到一个如何做的例子。到目前为止,有两个人试图告诉你如何做,而你似乎忽视了他们,并重复了这个问题。获取键内容而不是URL。这就是你想要使用的方法。