python Token加密解密方式


一、安裝包

pip install pyjwt

 

二、代碼邏輯實現

import time
import jwt

class Token(object):

    def __init__(self):
        pass

    @classmethod
    def encrpyt_token(cls,username,uuid,exptime=None,secret=None):
        """
        iss:該JWT的簽發者,是否使用是可以選擇的。
        sub:該JWT所面向的用戶,是否使用是可選的。
        aud:接收該JWT的一方,是否使用是可選的。
        exp(expires):什么時候過期,是一個UNIX的時間戳,是否使用是可選的。默認設置為:30分鍾
        iat(issued at):在什么時候簽發UNIX時間,是否使用是可選的。
        nbf(not before):如果當前時間在nbf的時間之前,則Token不被接受,一般都會留幾分鍾,是否使用是可選的。
        :return:
        """
        if not exptime:
            exptime = time.time() + 60*30

        if not secret:
            secret = 'iam'

        payloads = {
            'iss': 'IAM JWT Builder',
            'iat': time.time(),
            'username':username,
            'uuid':str(uuid),
            "exp": exptime
        }
        encoded_jwt = jwt.encode(payloads, secret, algorithm='HS256')
        return encoded_jwt

    @classmethod
    def decrypt_token(cls,token,secret=None):
        """
        encoded_jwt = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJJQU0gSldUIEJ1aWxkZXIiLCJpYXQiOjE1ODQzNDA0NjkuOTE5ODQxLCJ1c2VybmFtZSI6Inl1bGlhbmh1aTEiLCJ1dWlkIjoiOTQwYjBhZTgtNWEwNi0xMWVhLWEzNWItZjEwNWMyOGI2NDE2IiwiZXhwIjoxNTg0MzQyMjY5LjkxOTg0MX0.zITnwaB0zsuyO1kiyYBG5IFWEy5FewDGSJAj1eJ-uEg'
        decode_jwt = jwt.decode(encoded_jwt, 'iam', algorithms=['HS256'])
        print('decode_jwt',decode_jwt)
        :param token:
        :param secret:
        :return:
        """
        try:
            if not secret:
                secret = 'iam'
            decode_jwt = jwt.decode(token, secret, algorithms=['HS256'])

            return decode_jwt
        except jwt.exceptions.InvalidSignatureError as e:
            return {'error':'Signature verification failed'}

authToken = Token()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM