В связи с приближающимся прекращением поддержки Google OpenID 2 любой, кто использует удобную библиотеку, например Flask-Googleauth придется перенести. Существует библиотека Flask для OpenID Connect, которая называется flask-oidc. К сожалению, похоже, нет никакой информации о том, как его использовать. Я искал SO-вопросы с тегами flask
и openid-connect
, но нашел ноль, отсюда и этот вопрос.
Вот то, что я собрал как доказательство правильности использования flask-oidc. Он основан на файле app.py flask-oidc:
"""
Flask app for testing the OpenID Connect extension.
"""
from flask import Flask
from flask.ext.oidc import OpenIDConnect
def index():
return "too many secrets", 200, {
'Content-Type': 'text/plain; charset=utf-8'
}
def create_app(config, oidc_overrides=None):
app = Flask(__name__)
app.config.update(config)
if oidc_overrides is None:
oidc_overrides = {}
oidc = OpenIDConnect(app, **oidc_overrides)
app.route('/')(oidc.check(index))
return app
if __name__ == '__main__':
APP = create_app({
'OIDC_CLIENT_SECRETS': './client_secrets.json',
'SECRET_KEY': 'secret'})
APP.run(host="127.0.0.1", port=8080, debug=True)
После регистрации моего приложения, как описано здесь, это успешно отправляет пользователя в Google для аутентификации, и возвращает их в http://127.0.0.1:8080/oidc_callback
, который затем перенаправляет их в https://127.0.0.1:8080/
, но затем перенаправляет пользователя обратно в Google для аутентификации, создавая цикл перенаправления.
Мой вопрос, конечно, прост: как я могу заставить аутентифицированного пользователя увидеть эту индексную страницу?