当前位置: 首页 > 知识库问答 >
问题:

Authlib jwt令牌解码在函数内不工作

郎宣
2023-03-14

我正在使用authlib库来解码JWT令牌。

from authlib.specs.rfc7519 import jwt
encoded_jwt = '''eyJ0eXAiOiJKV1Qi.....'''
secret = b'''-----BEGIN PUBLIC KEY-----
.....
-----END PUBLIC KEY-----'''

claims = jwt.decode(encoded_jwt, secret)
print(type(claims))
import json

json_parse = json.loads(json.dumps(claims))
email = json_parse['http://wso2.org/claims/emailaddress']
print(email)
roles = json_parse['http://wso2.org/claims/role']
print(roles)
email, roles[-1]
def getsessions():
    from authlib.specs.rfc7519 import jwt
    encoded_jwt = '''eyJ0eXAiOiJ....'''
    secret = b'''-----BEGIN PUBLIC KEY-----
    ............
    -----END PUBLIC KEY-----'''

    claims = jwt.decode(encoded_jwt, secret)
    print(type(claims))
    import json

    json_parse = json.loads(json.dumps(claims))
    email = json_parse['http://wso2.org/claims/emailaddress']
    print(email)
    roles = json_parse['http://wso2.org/claims/role']
    print(roles)
    email, roles[-1]

email,role=getsessions()

print(email)

请帮助我哪里出了问题。我已经为这个问题挣扎了2天了。请帮忙。

共有1个答案

昝晗昱
2023-03-14

在函数中,在secret字符串中有一个缩进,这将把PUBLIC_KEY变成一个无效的键,因为它没有很好地缩进。函数中的关键字如下所示

abcdadgadgadsgasdgasdg
    adgadgadg
    adgagadgadsg

您可以将机密保存到名为public_key.pem的文件中,并从中读取数据。

 类似资料:
  • 问题内容: 我目前正在使用Golang应用程序。我从客户端收到JWT令牌,在Go中,我需要对该令牌进行解码并获取以下信息:用户,名称等。我正在检查可用于处理JWT的库令牌,我来到https://github.com/dgrijalva/jwt- go ,但我看不到如何简单地制作所需的东西。 我有令牌,我需要将信息解码为地图或至少为json。在哪里可以找到如何做的指南?谢谢! 问题答案: 函数接受第

  • 我使用jsonwebtoken解码我的令牌,看看它是否已过期。但是,控制台.log返回 null。 我不明白,因为我的令牌不为空

  • 问题内容: 试图在Swift中解码JWT有效负载并遇到困难 问题答案: 不是有效的Base64编码字符串,因为它的长度不是4的倍数。某些Base64解码器可以容忍此错误,但方法不能。 因此,这实际上是在服务器端创建Base64编码的字符串时出现的错误。如有必要,您可以通过添加所需的字符填充来在应用程序中对其进行修复(已为Swift 2更新了代码): 现在解码可以按预期进行: 斯威夫特4:

  • 我不明白这个图书馆是如何工作的。你能帮帮我吗? 以下是我的简单代码: 这是错误: 字符串需要采用紧凑的JSON格式,格式为:Base64UrlEncodedHeader。Base64UrlEndcodedPayload。可选,Base64UrlEncodedSignature'。 如果你复制流在jwt.io网站,它的作品罚款:)

  • 下面的代码运行良好,并从azure返回所需的访问令牌,但如果我试图用它从节点js或postman执行相同的函数,则会提示一个错误,如下所示: {“Error”:“invalid_client”,“error_description”:“aadsts70002:验证凭据时出错。aadsts50012:提供了无效的客户端机密。\r\n跟踪ID:922f61ca-0349-47fc-8c60-326cb

  • 我正在使用改型2.0在Android上构建一个Bitbucket REST客户端。 就我而言,OAuth2.0提供了“隐式授权”,当用户在提示下登录到他们的帐户时,它立即向客户机提供访问承载令牌。 承载令牌是可用于访问受保护资源的令牌。任何拥有承载令牌的人与其他拥有承载令牌的人一样,都有权访问受保护的资源。(根据IETF的这份文件) 如果我错了,请纠正我,但我认为使用隐式授权,在用户登录到他们的B