Skip to content

Commit c2f3ffe

Browse files
authored
Re-organizing Auth Unit Tests (#149)
* Re-organizing auth unit tests * Moving _request to TokenVerifier class * Updated tests
1 parent 18eb9aa commit c2f3ffe

File tree

3 files changed

+539
-519
lines changed

3 files changed

+539
-519
lines changed

firebase_admin/_token_gen.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525

2626
from firebase_admin import credentials
2727

28-
# Provided for overriding during tests.
29-
_request = transport.requests.Request()
3028

3129
# ID token constants
3230
ID_TOKEN_ISSUER_PREFIX = 'https://securetoken.google.com/'
@@ -36,11 +34,11 @@
3634
# Session cookie constants
3735
COOKIE_ISSUER_PREFIX = 'https://session.firebase.google.com/'
3836
COOKIE_CERT_URI = 'https://www.googleapis.com/identitytoolkit/v3/relyingparty/publicKeys'
39-
MIN_SESSION_COOKIE_DURATION_SECONDS = datetime.timedelta(minutes=5).total_seconds()
40-
MAX_SESSION_COOKIE_DURATION_SECONDS = datetime.timedelta(days=14).total_seconds()
37+
MIN_SESSION_COOKIE_DURATION_SECONDS = int(datetime.timedelta(minutes=5).total_seconds())
38+
MAX_SESSION_COOKIE_DURATION_SECONDS = int(datetime.timedelta(days=14).total_seconds())
4139

4240
# Custom token constants
43-
MAX_TOKEN_LIFETIME_SECONDS = datetime.timedelta(hours=1).total_seconds()
41+
MAX_TOKEN_LIFETIME_SECONDS = int(datetime.timedelta(hours=1).total_seconds())
4442
FIREBASE_AUDIENCE = ('https://identitytoolkit.googleapis.com/google.'
4543
'identity.identitytoolkit.v1.IdentityToolkit')
4644
RESERVED_CLAIMS = set([
@@ -152,6 +150,7 @@ class TokenVerifier(object):
152150
"""Verifies ID tokens and session cookies."""
153151

154152
def __init__(self, app):
153+
self.request = transport.requests.Request()
155154
self._id_token_verifier = _JWTVerifier(
156155
project_id=app.project_id, short_name='ID token',
157156
operation='verify_id_token()',
@@ -164,10 +163,10 @@ def __init__(self, app):
164163
cert_url=COOKIE_CERT_URI, issuer=COOKIE_ISSUER_PREFIX)
165164

166165
def verify_id_token(self, id_token):
167-
return self._id_token_verifier.verify(id_token)
166+
return self._id_token_verifier.verify(id_token, self.request)
168167

169168
def verify_session_cookie(self, cookie):
170-
return self._cookie_verifier.verify(cookie)
169+
return self._cookie_verifier.verify(cookie, self.request)
171170

172171

173172
class _JWTVerifier(object):
@@ -185,7 +184,7 @@ def __init__(self, **kwargs):
185184
else:
186185
self.articled_short_name = 'a {0}'.format(self.short_name)
187186

188-
def verify(self, token):
187+
def verify(self, token, request):
189188
"""Verifies the signature and data for the provided JWT."""
190189
token = token.encode('utf-8') if isinstance(token, six.text_type) else token
191190
if not isinstance(token, six.binary_type) or not token:
@@ -258,7 +257,7 @@ def verify(self, token):
258257

259258
verified_claims = google.oauth2.id_token.verify_token(
260259
token,
261-
request=_request,
260+
request=request,
262261
audience=self.project_id,
263262
certs_url=self.cert_url)
264263
verified_claims['uid'] = verified_claims['sub']

0 commit comments

Comments
 (0)