Dies ist ein Memo, als das Web-Token von AWS Cognito überprüft wurde.
[JSON Web Token Verification \ -Amazon Cognito](https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-verifying-a-jwt. html)
Mit Cognito können Sie ein JWK-Set zur Überprüfung für jeden Benutzerpool herunterladen
https://cognito-idp.{region}.amazonaws.com/{userPoolId}/.well-known/jwks.json
jwt jwt/ruby-jwt: A ruby implementation of the RFC 7519 OAuth JSON Web Token (JWT) standard.
Wird zum Dekodieren von regulären JWT-Token verwendet
json-jwt
Wird verwendet, um einen öffentlichen Schlüssel aus einem öffentlichen JSON-Webschlüssel (JWK) zu erstellen.
#Laden Sie das JWK-Set herunter
uri = "https://cognito-idp.ap-northeast-1.amazonaws.com/example/.well-known/jwks.json"
response = Net::HTTP.get_response(URI.parse(uri))
jwks = JSON.parse(response.body)
#Dekodieren Sie JWT ohne Überprüfung
token = JWT.decode(jwt, nil, false)
#Holen Sie sich das Kinderspiel aus dem JWK-Set
jwk = jwks["keys"].find { |obj| obj["kid"] == token[1]["kid"] }
#Erstellen Sie einen öffentlichen Schlüssel
public_key = JSON::JWK.new(jwk).to_key
#Eine Ausnahme ist, wenn die Dekodierungsüberprüfung mit einem öffentlichen Schlüssel ungültig ist.
JSON::JWT.decode(jwt, public_key)
Wenn Sie es hilfreich finden, wenden Sie sich bitte an LGTM
Recommended Posts