class Stytch::M2M
def authenticate_token_local(jwt, clock_tolerance_seconds: nil)
Parse a M2M token and verify the signature locally (without calling /authenticate in the API)
def authenticate_token_local(jwt, clock_tolerance_seconds: nil) clock_tolerance_seconds = 0 if clock_tolerance_seconds.nil? issuer = 'stytch.com/' + @project_id begin decoded_token = JWT.decode jwt, nil, true, { jwks: @jwks_loader, iss: issuer, verify_iss: true, aud: @project_id, verify_aud: true, algorithms: ['RS256'], nbf_leeway: clock_tolerance_seconds } decoded_token[0] rescue JWT::InvalidIssuerError raise JWTInvalidIssuerError rescue JWT::InvalidAudError raise JWTInvalidAudienceError rescue JWT::ExpiredSignature raise JWTExpiredSignatureError rescue JWT::IncorrectAlgorithm raise JWTIncorrectAlgorithmError end end