首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基本Flask OpenID连接示例

基本Flask OpenID连接示例
EN

Stack Overflow用户
提问于 2015-03-14 16:12:07
回答 1查看 8.8K关注 0票数 7

随着谷歌即将关闭对OpenID 2的支持,任何使用像Flask-Googleauth这样方便的库的人都将不得不迁移。有一个用于OpenID连接的Flask库,称为flask-oidc。不幸的是,似乎没有任何关于如何使用它的信息。我查找了标记为flaskopenid-connect的SO问题,但没有找到任何问题,因此出现了这个问题。

下面是我对flask-oidc的概念验证用法。它是基于flask-oidc's app.py file

代码语言:javascript
复制
"""
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)

在按照描述的here注册我的应用程序之后,它成功地将用户发送到谷歌进行身份验证,并将用户返回给http://127.0.0.1:8080/oidc_callback,然后将用户重定向到https://127.0.0.1:8080/,但随后将用户重定向回谷歌进行身份验证,从而创建了一个重定向循环。

当然,我的问题很简单:如何让经过身份验证的用户看到该索引页面?

EN

回答 1

Stack Overflow用户

发布于 2015-03-15 09:09:40

问题是oidc_callback正确地创建了身份验证cookie (名为oidc_id_token)并重定向到index,但index无法检索该cookie,因为应用程序托管在HTTP上,并且cookie设置了Secure flag,因此浏览器不愿意通过HTTP将其发送回应用程序。

解决方案是(仅用于本地开发!)要关闭安全标志,请将OpenIDConnect配置项OIDC_ID_TOKEN_COOKIE_SECURE设置为False

代码语言:javascript
复制
if __name__ == '__main__':
    APP = create_app({
        'OIDC_CLIENT_SECRETS': './client_secrets.json',
        'OIDC_ID_TOKEN_COOKIE_SECURE': False,
        'SECRET_KEY': 'secret'})
    APP.run(host="127.0.0.1", port=8080, debug=True)
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29046866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档