def encode_token(client_types, environment=None, idempotent=False, expire=None):
cfg = inmanta_config.AuthJWTConfig.get_sign_config()
payload = {
"iss": cfg.issuer,
"aud": [cfg.audience],
const.INMANTA_URN + "ct": ",".join(client_types),
}
if not idempotent:
payload["iat"] = int(time.time())
if cfg.expire > 0:
payload["exp"] = int(time.time() + cfg.expire)
elif expire is not None:
payload["exp"] = int(time.time() + expire)
if environment is not None:
payload[const.INMANTA_URN + "env"] = environment
return jwt.encode(payload, cfg.key, cfg.algo).decode()
评论列表
文章目录