我正在尝试编写一个类,并称其为我的代码
import jwt
class generate_jwt():
def __init__(self):
self.name = 'jwt token manager'
def encode_with_hsa(self, secret, expiration_time, payload):
exp_time = {'exp': expiration_time}
return jwt.encode(payload, exp_time, secret, algorithm='HS256')
snake = generate_jwt()
so = {'secret':'ff'}
print(snake.encode_with_hsa('dd', 434234, so))
但是这表明TypeError:调用类并重现值时,encode()对于参数'algorithm'具有多个值
答案 0 :(得分:0)
我通过执行以下操作来修正您的代码:
import jwt
class generate_jwt():
def __init__(self):
self.name = 'jwt token manager'
def encode_with_hsa(self, secret, expiration_time, payload):
exp_time = {'exp': expiration_time}
return jwt.encode(payload, secret, algorithm='HS256', exp_time)
snake = generate_jwt()
so = {'secret':'ff'}
print(snake.encode_with_hsa('dd', 434234, so))
签出编码函数here的定义:
def encode(self, payload, # type: Union[Dict, bytes] key, # type: str algorithm='HS256', # type: str headers=None, # type: Optional[Dict] json_encoder=None # type: Optional[Callable] ):
因此,您必须遵循函数的定义,即参数的传递方式(参数的顺序)。
注意:我不确定您在哪里需要exp_time
。您可以删除它,因为它是可选的。