python 中生成 jwt token

Django之DRF框架(五)JWT认证_Simple子夜的博客-CSDN博客_django jwt认证

上面是原文自己整理一下代码:

import base64
import json
import hashlib

SECRET_KEY = "django-ceshi"
head = {'a': 'b'}
payload = {
    "sub": "1234567890",
    "name": "Tom",
    "admin": True
}


class JwtToken:
    def __init__(self, _secret):
        self.secret_key = _secret


    @staticmethod
    def b64_encode(_jsn):
        if isinstance(_jsn, dict):
            _jsn = json.dumps(_jsn)
        return base64.b64encode(_jsn.encode('utf-8'))

    @staticmethod
    def create_token(b64_head, b64_payload, md5_signature):
        return f'{b64_head.decode("utf-8")}.{b64_payload.decode("utf-8")}.{md5_signature}'

    def create(self, _head, _payload):
        head_base64 = self.b64_encode(_head)
        payload_base64 = self.b64_encode(_payload)
        secret_base64 = self.b64_encode(self.secret_key)
        md5 = hashlib.md5()
        md5.update(head_base64)
        md5.update(payload_base64)
        md5.update(secret_base64)  # secret
        signature = md5.hexdigest()
        return self.create_token(head_base64, payload_base64, signature)


print(JwtToken(SECRET_KEY).create(head, payload))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值