Réalisez facilement une connexion / déconnexion multifonctionnelle avec Python / Flask en utilisant Auth0 https://blanktar.jp/blog/2017/11/python-flask-auth0.html
Il y avait une partie du site ci-dessus qui ne fonctionnait pas, alors je l'ai corrigée.
from jwt.algorithms import RSAAlgorithm
@app.route('/callback')
def auth_callback():
#Obtenez les informations fournies par Auth0.
resp = auth0.authorized_response()
if resp is None:
return 'nothing data', 403
#Obtenez les informations pour vérifier la signature.
jwks = json.loads(urllib.request.urlopen("https://"+AUTH0_DOMAIN+"/.well-known/jwks.json").read())
#Décryptez les données au format JWT pour obtenir des informations sur l'utilisateur.
#Au fait, je vérifie que la signature est correcte.
try:
payload = jwt.decode(resp['id_token'], RSAAlgorithm.from_jwk( json.dumps(jwks['keys'][0])), audience=AUTH0_CLIENT_ID, algorithms='RS256')
except Exception as e:
print(e)
return 'something wrong', 403 #La signature est étrange.
#Enregistrez les données utilisateur dans un cookie à l'aide de flask Session.
flask.session['profile'] = {
'id': payload['sub'],
'name': payload['name'],
'picture': payload['picture'],
}
#Passer à ma page.
return flask.redirect(flask.url_for('mypage'))
Recommended Posts