我当前正在尝试访问 API 返回的 JWT 给出的有效负载中的信息。我已经尝试过官方 jwt 文档中的示例,但似乎没有任何效果。我的目标是从文档中提取姓名和电子邮件,以便我在网页中使用它,请参阅使用 Google JavaScript API 参考登录
我收到了 API 返回的 JWT,但我不知道如何解码它以供我使用。
这是我这部分的所有代码
@app.route("/")
@app.route("/index",methods=["GET","POST"])
def index():
if request.method == "POST":
if request.form["credential"]:
pass
其中 request.form["credential"] 是表单中的 JWT
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9liiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJ V_adQssw5c
如何用Python来完成?我对此很陌生,所以我正在学习:)
试一试:
import jwt
def decode_jwt(token):
try:
decoded = jwt.decode(token, 'secret', algorithms=['HS256'])
return decoded
except:
return None
试试这个
`导入json 导入base64
defdecode_jwt_response(凭证): # 将凭证分为三部分:标头、有效负载和签名 部分 = credential.split('.') 有效负载 = json.loads(base64.urlsafe_b64decode(parts[1] + '=' * (-len(parts[1]) % 4)).decode('utf-8'))
return {
'sub': payload.get('sub'),
'name': payload.get('name'),
'given_name': payload.get('given_name'),
'family_name': payload.get('family_name'),
'picture': payload.get('picture'),
'email': payload.get('email')
}
`