설명했듯이 here으로, 안드로이드 응용 프로그램에서 python3을 실행하는 서버로 전달되는 토큰을 확인하려고합니다.Android 백엔드에서 안드로이드 백엔드 호출에서 확인하십시오.
전달 된 토큰을 확인하고 싶습니다. 문제는 내가 google-api-python-client 라이브러리에서 지원하지 않는 서버에서 python3을 실행하고 있다는 것입니다. 나는 pyjwt를 사용하여, 다음과 같은 해결 방법을 발견하고이 site에서, 라이브러리를 요청합니다
import json
import jwt
import requests
GOOGLE_CERTS_URI = 'https://www.googleapis.com/oauth2/v1/certs'
class GoogleIdToken(object):
def __init__(self):
self._certs = {}
self._token = {}
def getCerts(self):
cert = requests.get(GOOGLE_CERTS_URI)
if cert.status_code == 200:
return json.loads(cert.content)
def isValid(self, token, audience, clientId=None):
self._certs = self.getCerts()
for key in self._certs:
try:
token = jwt.decode(token, key=self._certs[key], verify=False)
if 'email' in token and 'aud' in token:
if token['aud'] == audience and (clientId == token['cid'] if clientId is not None else True):
self._token = token
return True
except Exception, e:
print("Error decoding: %s" % e.message)
return False
내 두 가지 질문
은 다음과 같습니다 가- 사람이 작동하는 다른 및/또는 더 나은 기존 솔루션을 알고 있나요 python3?
- 위의 해결책이 완료 되었습니까?
더 나은 솔루션을 찾았습니까? – drfence
아니요, 좋은 해결책을 찾지 못했습니다. – Alex
여전히 작동합니까, 아니면 Google에서 아무 것도 변경하지 않았습니까? 네이티브/자체 구현을 직접 찾고 있습니다. Google 도서관은 끔찍하게 부풀어 오릅니다. –