好吧,我正在尝试用我的django项目实现google oauth身份验证。

我在这里遵循指南:

https://developers.google.com/accounts/docs/OAuth2Login?hl=de-DE

我得到了交换代码的响应。我有一个字符串类型的json,其中包含多个信息,例如access_token,id_token等。

Id_token是以base 64编码的加密签名JSON对象。
我尝试使用python模块base64解码id_token,但失败。

我也尝试了PyJWT,失败了。

有什么办法解码和验证它?

最佳答案

知道这是一篇旧文章,但我是通过Google找到的,所以我认为其他人可能会加入...

我最终做了:

segments = response['id_token'].split('.')

if (len(segments) != 3):
   raise Exception('Wrong number of segments in token: %s' % id_token)

b64string = segments[1]
b64string = b64string.encode('ascii')
padded = b64string + '=' * (4 - len(b64string) % 4)
padded = base64.urlsafe_b64decode(padded)

10-01 15:44