我在创建Alteryx工作流时遇到了一些问题,该工作流在Python工具中使用RS256算法对JWT令牌进行编码.
以下是我的代码:
#################################
from ayx import Alteryx
from ayx import Package
import pandas
##Package.installPackages(package="cryptography",install_type="install --proxy proxy.server:port")
##Package.installPackages(package="pyjwt[crypto]",install_type="install --proxy proxy.server:port")
import jwt
from io import StringIO
#################################
table = Alteryx.read("#1")
#################################
print(table)
#################################
id = table.at[0, 'id']
#################################
url = table.at[0, 'url']
#################################
key = table.at[0, 'key']
#################################
exp = table.at[0, 'exp']
#################################
exp = int(exp)
#################################
nbf = table.at[0, 'nbf']
#################################
nbf = int(nbf)
#################################
encoded = jwt.encode({"iss": id, "aud": url, "exp": exp, "nbf": nbf}, key, algorithm='RS256')
#################################
s=str(encoded,'utf-8')
data = StringIO(s)
df=pandas.read_csv(data,header=None)
#################################
Alteryx.write(df,1)
问题是,当我try 使用RS256算法对JWT进行编码时:encoded = jwt.encode({"iss": id, "aud": url, "exp": exp, "nbf": nbf}, key, algorithm='RS256')
,它返回错误消息NotImplementedError: 算法rithm 'RS256' could not be found. Do you have cryptography installed?
应该安装加密包,因为我在 Select 包名:pyjwt[crypto]
-SOURCE:Installation — PyJWT 2.7.0 documentation时指定了[CRYPTO].我也try 通过添加##Package.installPackages(package="cryptography",install_type="install --proxy proxy.server:port")
来单独安装它,但仍然出现相同的错误.