AttributeError: module 'jose' has no attribute 'sign'
AttributeError: module 'jose' has no attribute 'sign'
编辑
我试图使用 python-jose 简单地生成一个 jwt,但我没有找到一个明确的例子。我跟着下面的那个,这不是我真正需要的。在遵循答案 1 之后,我将代码更新为这个并且它可以工作。
!/usr/bin/env python3
from jose import jws,jwt
from Crypto.PublicKey import RSA
from time import time
# generate rsa key
key = RSA.generate(2048)
ex = int(time())
claims = {
'iss': 'Smarneh',
'exp': (ex + 3600),
'sub': 42,
}
pri_key=key.exportKey()
#jws = jws.sign(claims, pri_key, algorithm='RS256')
jot =jwt.encode(claims, pri_key, algorithm='RS256')
print (jot)
我只是想遵循 python-jose 库的 this 示例
#!/usr/bin/env python3
import jose
from Crypto.PublicKey import RSA
from time import time
# generate rsa key
key = RSA.generate(2048)
ex = int(time())
claims = {
'iss': 'Smarneh',
'exp': (ex + 3600),
'sub': 42,
}
pub_jwk ={'k':key.publickey().exportKey('PEM')}
jws = jose.sign(claims, pub_jwk, alg='HS256')
而且我不断收到此错误:
File "./josetest.py", line 17, in
jws = jose.sign(claims, pub_jwk, alg='HS256')
AttributeError: module 'jose' has no attribute 'sign'
我试图在这里搜索类似的问题,但没有一个与 python-jose 相关。如果对此有任何帮助,我将不胜感激。
编辑:
我正在试验不同的 JWT 库,所以我安装了多个 JWT 库。这可能是问题的原因吗?
您需要从包中导入 jws
并使用 jws.sign()
。
像
一样尝试导入它
from jose import jws
然后签名
jws = jws.sign(claims, 'secret', alg='HS256')
根据这个例子https://python-jose.readthedocs.io/en/latest/jws/index.html
编辑
我试图使用 python-jose 简单地生成一个 jwt,但我没有找到一个明确的例子。我跟着下面的那个,这不是我真正需要的。在遵循答案 1 之后,我将代码更新为这个并且它可以工作。
!/usr/bin/env python3
from jose import jws,jwt
from Crypto.PublicKey import RSA
from time import time
# generate rsa key
key = RSA.generate(2048)
ex = int(time())
claims = {
'iss': 'Smarneh',
'exp': (ex + 3600),
'sub': 42,
}
pri_key=key.exportKey()
#jws = jws.sign(claims, pri_key, algorithm='RS256')
jot =jwt.encode(claims, pri_key, algorithm='RS256')
print (jot)
我只是想遵循 python-jose 库的 this 示例
#!/usr/bin/env python3
import jose
from Crypto.PublicKey import RSA
from time import time
# generate rsa key
key = RSA.generate(2048)
ex = int(time())
claims = {
'iss': 'Smarneh',
'exp': (ex + 3600),
'sub': 42,
}
pub_jwk ={'k':key.publickey().exportKey('PEM')}
jws = jose.sign(claims, pub_jwk, alg='HS256')
而且我不断收到此错误:
File "./josetest.py", line 17, in jws = jose.sign(claims, pub_jwk, alg='HS256') AttributeError: module 'jose' has no attribute 'sign'
我试图在这里搜索类似的问题,但没有一个与 python-jose 相关。如果对此有任何帮助,我将不胜感激。
编辑: 我正在试验不同的 JWT 库,所以我安装了多个 JWT 库。这可能是问题的原因吗?
您需要从包中导入 jws
并使用 jws.sign()
。
像
一样尝试导入它from jose import jws
然后签名
jws = jws.sign(claims, 'secret', alg='HS256')
根据这个例子https://python-jose.readthedocs.io/en/latest/jws/index.html