前言:
眼前看官们对“python中取得token”都比较讲究,咱们都需要了解一些“python中取得token”的相关文章。那么小编也在网摘上收集了一些关于“python中取得token””的相关资讯,希望咱们能喜欢,小伙伴们一起来了解一下吧!有这样一个需求,项目是python做的,但有一部分是用c++做的,现在需要使用c++解析python生成的token。
python生成token有一个专门的库pyjwt,使用pip install pyjwt即可安装。
在python端生成和解析token
def JwtEncode(data)->str: '''jwt生成token''' strKey = "mykey" encoded = jwt.encode(data, strKey, algorithm="HS256") return encodeddef JwtDecode(token)->dict: '''jwt解析token''' strKey = "mykey" data = jwt.decode(token, strKey, algorithms="HS256") return data
使用c++解析token, 在github上找到一个c++解析jwt token的库:
下载编译即可,编译也很简单。
要使用这个库,还需要一个库,那就是nlohmann/json库,这是一个强大的json库,同样下载编译
这个编译可能会遇到些问题,需要自己处理,比如我遇到的问题就是newline in constant,我是直接注释掉了。
使用cpp-jwt解析token
#pragma once#include <jwt/jwt.hpp>namespace TokenValid { int JwtTokenValid(const std::string& strToken) { using namespace jwt::params; QString tokeyKey("mykey"); jwt::jwt_object decObj = jwt::decode(strToken, algorithms({ "HS256" }), secret(tokeyKey.toStdString())); // 判断是否有openid jwt::jwt_payload payloadObj = decObj.payload(); if (!payloadObj.has_claim("userid")) { return 0; } if (!payloadObj.has_claim("openid")) { return 0; } return payloadObj.get_claim_value<int>("userid"); }}
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #python中取得token