PyJWT, Expecting a PEM-formatted key
我已经从图层复制粘贴了以下代码:
https://github.com/layerhq/support/blob/master/identity-services-samples/python/controller.py
有人告诉我另外两个人在mac机上成功运行了它。 我正在使用Windows 7,并且收到TypeError:运行代码时需要PEM格式的键:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #Read RSA key root = os.path.dirname("__file__") with open(os.path.join(root, RSA_KEY_PATH), 'r') as rsa_priv_file: #Not sure about adding the utf-8 AT ALL priv_rsakey = RSA.importKey(rsa_priv_file.read()) #Create identity token #Make sure you have PyJWT and PyCrypto libraries installed and imported identityToken = jwt.encode( payload={ "iss": PROVIDER_ID, # String - The Provider ID found in the Layer Dashboard "prn": user_id, # String - Provider's internal ID for the authenticating user "iat": datetime.datetime.now(), # Integer - Time of Token Issuance in RFC 3339 seconds "exp": datetime.datetime.utcnow() + datetime.timedelta(seconds=30), # Integer - Arbitrary Token Expiration in RFC 3339 seconds "nce": nonce # The nonce obtained via the Layer client SDK. }, key=priv_rsakey, headers = { "typ":"JWS", # String - Expresses a MIME Type of application/JWS "alg":"RS256", # String - Expresses the type of algorithm used to sign the token, must be RS256 "cty":"layer-eit;v=1", # String - Express a Content Type of Layer External Identity Token, version 1 "kid": KEY_ID # String - Private Key associated with"layer.pem", found in the Layer Dashboard }, algorithm="RS256" ) print identityToken |
我不知道我的PEM格式化密钥应该如何设置,但是如下所示(我在发布之前手动更改了密钥):
-----BEGIN RSA PRIVATE KEY----- MIICWwIBAAKBgQCWjLl4Hw8PLto2wGGxrpJ0afHQDX2iJ/xqNXyybgG0GxZI344u
HXxn/bRzH4Z39pw3vGKrvd21hyln5/qaJGoCSb7QHAtdz8pfNF3t96DBcDh2aDMe
+8W/4mZqiDi2zNqxAnmuv6vSKnU3UyqFpuPCdXFiA8Gt8OqHHLks8MYYjwIDAQAB AoGAII9i9YXSHfiGHV1SQ7l7102qjNK+HzoCr33N8FE2cRuCoFQpTfP2mg8W3ect
j/h4JN3LgVVZBA+tdtiptHi3rF1W4yNs4pO3xYLJZHoCdG5CjHoMzEf2VwixK6+f
8FCCNErG8yxCpcPDH8D0NjMFzJ0t1kwsBQ0w5iSvdY3qtLECQQDgQPVk6W79kNS9
gBoZAB71yJazQpCwJ2SLYj6aFNZDX1Jpg5GRoVOs59gl13UF+9AwJf5MCIMbqaly
T1/4aBa1AkEAq9y0DwSjNLl26XeBhWycQJZUu5lsJVqJcx2q0GsKGx5Ntei/48bD
ldi7ZXWdA6o4OOV2GpW1hX7vssPHBXBYswJAMGXUkDLRAWiAgWVkPIEKLYFdBNMY
5uuZh3tsh1R36ZJo9tyuTf/DT026GHCnkOMHy1xnxYEQyqeTKlh3HeVZAQJAIQYC
r1QTzEDLAaeOAsZQ6/Q3Cek4545TBgSwWuYGhhl3kznLDYiW8oc30xIbfqXJsd0d
qZQU0jcG9hG6f2gMEwJALHz0jXhpjo+UygUjdKbW/mfKRirSYiGLCYQHiNc4aaDe
omr9XLu9Hc6aI9RVGIFMnygaI9Ahu2mNkpj5UoaTTA==-----END RSA PRIVATE KEY-----
我找不到有效的解决方案。
谁有想法? 谢谢
更改:
1 | priv_rsakey = RSA.importKey(rsa_priv_file.read()) |
至:
1 | priv_rsakey = rsa_priv_file.read() |