test Google Oauth successful
This commit is contained in:
Binary file not shown.
@@ -28,7 +28,6 @@ def read_google_settings(settings):
|
|||||||
# Returnne un dict {google.client_id, google.client_secret}.
|
# Returnne un dict {google.client_id, google.client_secret}.
|
||||||
# Le reglage de l'ini, s'il existe, l'emporte sur l'environnement.
|
# Le reglage de l'ini, s'il existe, l'emporte sur l'environnement.
|
||||||
google = {}
|
google = {}
|
||||||
# import pdb;pdb.set_trace()
|
|
||||||
key = 'google.client_id'
|
key = 'google.client_id'
|
||||||
google[key] = settings.get(key)
|
google[key] = settings.get(key)
|
||||||
key = 'google.client_secret'
|
key = 'google.client_secret'
|
||||||
|
|||||||
@@ -133,13 +133,18 @@ class GoogleOAuth(object):
|
|||||||
|
|
||||||
def verify_id_token(self, id_token, nonce):
|
def verify_id_token(self, id_token, nonce):
|
||||||
metadata = self.metadata()
|
metadata = self.metadata()
|
||||||
|
# jwt.decode ne valide aucun claim : `registry` y est un JWSRegistry.
|
||||||
|
# La validation des claims se fait donc explicitement, apres decode.
|
||||||
registry = joserfc_jwt.JWTClaimsRegistry(
|
registry = joserfc_jwt.JWTClaimsRegistry(
|
||||||
|
leeway=60,
|
||||||
iss={'essential': True, 'value': metadata.get('issuer')},
|
iss={'essential': True, 'value': metadata.get('issuer')},
|
||||||
aud={'essential': True, 'value': self.client_id},
|
aud={'essential': True, 'value': self.client_id},
|
||||||
|
exp={'essential': True},
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
token = joserfc_jwt.decode(
|
token = joserfc_jwt.decode(
|
||||||
id_token, self.key_set(), algorithms=['RS256'], registry=registry)
|
id_token, self.key_set(), algorithms=['RS256'])
|
||||||
|
registry.validate(token.claims)
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
raise GoogleOAuthError("Le id_token renvoye par Google est invalide : %s" % exc)
|
raise GoogleOAuthError("Le id_token renvoye par Google est invalide : %s" % exc)
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,6 @@ def login(request):
|
|||||||
session['oauth_nonce'] = nonce
|
session['oauth_nonce'] = nonce
|
||||||
session['oauth_code_verifier'] = code_verifier
|
session['oauth_code_verifier'] = code_verifier
|
||||||
|
|
||||||
import pdb;pdb.set_trace()
|
|
||||||
url = request.registry.google_oauth.create_authorization_url(
|
url = request.registry.google_oauth.create_authorization_url(
|
||||||
redirect_uri=request.route_url('login_google_callback'),
|
redirect_uri=request.route_url('login_google_callback'),
|
||||||
state=state,
|
state=state,
|
||||||
|
|||||||
Reference in New Issue
Block a user