如何根据需求在python中生成JWT

如何根据需求在python中生成JWT,python,jwt,Python,Jwt,我正在尝试生成JWT,以便在API集成中使用它。是生成JWT令牌的具体要求,但我不想在python中介绍如何生成JWT令牌 它显示以下Java代码段: JWT.create() .withIssuer("CLIENT_ID") .withExpiresAt(new Date(System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(5))) .sign(Algorithm.HMAC256("CLI

我正在尝试生成JWT,以便在API集成中使用它。是生成JWT令牌的具体要求,但我不想在python中介绍如何生成JWT令牌

它显示以下Java代码段:

    JWT.create()  
      .withIssuer("CLIENT_ID")
      .withExpiresAt(new Date(System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(5)))
      .sign(Algorithm.HMAC256("CLIENT_SECRET"));
因此,我试图创造它。。。 这里我在python中使用lib,下面是我的代码:

从datetime导入datetime、timedelta、时区
从jwt导入jwt
从jwt.utils导入从\u datetime获取\u int\u
实例=JWT()
消息={
'iss':'CLIENT_ID',
“exp”:从datetime(datetime.now(timezone.utc)+timedelta(小时=23))获取int
}
签名密钥='CLIENT\u SECRET'
compact_jws=instance.encode(消息,签名密钥,alg='HS256')
打印('compact_jws',compact_jws)
但是上面的代码给了我以下错误:

TypeError:键必须是实现jwt.AbstractJWKBase的类的实例


我不确定我编写的代码是否符合要求,请帮助我。

尝试使用pyjwt: 而不是jwt

然后您可以执行以下操作:

encoded_jwt = jwt.encode({'some': 'payload'}, 'secret', algorithm='HS256')
安装时请使用:

pip install pyjwt
并将其用作:

import jwt

您的
签名密钥
只是一个普通的
字符串
。它应该是
jwt.AbstractJWKBase
的[subtype]实例是的,我从错误消息中理解了它,但是如何解决这个问题呢?