好吧,我正在尝试用我的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)