JWT签名详解,JAVA示例,点击->JWT详解
Python JWT对称签名
import jwtclass JwtToken(object):_salt = "gz"_expire_message = dict(code=1200, msg="token 已经失效")_unknown_error_message = dict(code=4200, msg="token 解析失败")@classmethoddef generate_token(cls, payload: dict) -> str:headers = dict(typ="jwt", alg="HS256")resut = jwt.encode(payload=payload, key=cls._salt, algorithm="HS256", headers=headers)return resut@classmethoddef parse_token(cls, token: str) -> tuple:verify_status = Falsetry:payload_data = jwt.decode(token, cls._salt, algorithms=['HS256'])verify_status = Trueexcept jwt.ExpiredSignatureError:payload_data = cls._expire_messageexcept Exception as _err:payload_data = cls._unknown_error_messagereturn verify_status, payload_datajwt_token = JwtToken.generate_token({"user": "xiongfanyong"})print(jwt_token)print(JwtToken.parse_token(jwt_token))
Python JWT非对称签名
import test4 # 这个文件在https://www.yuque.com/gaotang-zubwc/mainshi/sc6wa4
import jwtimport test4class JwtToken(object):private_key = test4.get_private_key()public_key = test4.get_public_key()_expire_message = dict(code=1200, msg="token 已经失效")_unknown_error_message = dict(code=4200, msg="token 解析失败")@classmethoddef generate_token(cls, payload: dict) -> str:headers = dict(typ="jwt", alg="RS256")resut = jwt.encode(payload=payload, key=cls.private_key.encode(), algorithm="RS256", headers=headers)return resut@classmethoddef parse_token(cls, token: str) -> tuple:verify_status = Falsetry:payload_data = jwt.decode(token, cls.public_key.encode(), algorithms=['RS256'])verify_status = Trueexcept jwt.ExpiredSignatureError:payload_data = cls._expire_messageexcept Exception as _err:payload_data = cls._unknown_error_messagereturn verify_status, payload_datajwt_token = JwtToken.generate_token({"user": "xiongfanyong"})print(jwt_token)print(JwtToken.parse_token(jwt_token))
