簡體   English   中英

AttributeError:模塊“jose”沒有屬性“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 庫的例子

                                                                                                                                 #!/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')

我不斷收到這個錯誤:

文件“./josetest.py”,第 17 行,在 jws = jose.sign(claims, pub_jwk, alg='HS256') AttributeError: module 'jose' has no attribute 'sign'

我試圖在這里搜索類似的問題,但與 python-jose 無關。 我將不勝感激。

編輯:我正在試驗不同的 JWT 庫,所以我安裝了多個 JWT 庫。 這可能是問題的原因嗎?

您需要從 package 導入jws並使用jws.sign()

嘗試像這樣導入它

from jose import jws

然后簽到

jws = jws.sign(claims, pub_jwk, alg='HS256')

根據此示例https://python-jose.readthedocs.io/en/latest/jws/index.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM