Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 错误:oidc:错误:无法获取令牌信息_Python_Flask_Keycloak - Fatal编程技术网

Python 错误:oidc:错误:无法获取令牌信息

Python 错误:oidc:错误:无法获取令牌信息,python,flask,keycloak,Python,Flask,Keycloak,我正在尝试用一个简单的FlaskAPI设置KeyClock集成。我试图将其用作设置简单api的参考。我在stack overflow上看到过类似的问题,但我没有通过这些问题得到任何解决方案。也许有人能帮我解决这个问题 我的代码: app.py import json import logging from flask import Flask, g from flask_oidc import OpenIDConnect import requests logging.basicConfi

我正在尝试用一个简单的FlaskAPI设置KeyClock集成。我试图将其用作设置简单api的参考。我在stack overflow上看到过类似的问题,但我没有通过这些问题得到任何解决方案。也许有人能帮我解决这个问题

我的代码:

app.py


import json
import logging

from flask import Flask, g
from flask_oidc import OpenIDConnect
import requests

logging.basicConfig(level=logging.DEBUG)

app = Flask(__name__)
app.config.update({
    'SECRET_KEY': 'SomethingNotEntirelySecret',
    'TESTING': True,
    'DEBUG': True,
    'OIDC_CLIENT_SECRETS': 'client_secrets.json',
    'OIDC_ID_TOKEN_COOKIE_SECURE': False,
    'OIDC_REQUIRE_VERIFIED_EMAIL': False,
    'OIDC_USER_INFO_ENABLED': True,
    'OIDC_OPENID_REALM': 'apiv3-login',
    'OIDC_SCOPES': ['openid', 'email', 'profile'],
    'OIDC_INTROSPECTION_AUTH_METHOD': 'client_secret_post',
    'OIDC_TOKEN_TYPE_HINT': 'access_token'
})

oidc = OpenIDConnect(app)


@app.route('/')
def hello_world():
    if oidc.user_loggedin:
        return ('Hello, %s, <a href="/private">See private</a> '
                '<a href="/logout">Log out</a>') % \
               oidc.user_getfield('preferred_username')
    else:
        return 'Welcome anonymous, <a href="/private">Log in</a>'


@app.route('/api', methods=['POST'])
@oidc.accept_token(require_token=True)
def hello_api():
    """OAuth 2.0 protected API endpoint accessible via AccessToken"""
    return json.dumps({'hello': 'Welcome %s' % g.oidc_token_info['sub']})

@app.route('/logout')
def logout():
    """Performs local logout by removing the session cookie."""
    oidc.logout()
    return 'Hi, you have been logged out! <a href="/">Return</a>'

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')
我正在尝试使用端点(使用邮递员)获取令牌

授予类型:密码

使用访问令牌,我试图使用上面步骤中的授权头承载访问令牌调用localhost:5000/api。我不确定我做错了什么

烧瓶错误显示
错误:烧瓶\u oidc:错误:无法获取令牌信息

{
    "web": {
        "issuer": "http://localhost:8080/auth/realms/apiv3",
        "auth_uri": "http://localhost:8080/auth/realms/apiv3/protocol/openid-connect/auth",
        "client_id": "apiv3-login",
        "client_secret": "5551fe75-38c5-435a-a392-a6da6252439e",
        "redirect_uris": [
            "http://localhost:5000/*"
        ],
        "userinfo_uri": "http://localhost:8080/auth/realms/apiv3/protocol/openid-connect/userinfo",
        "token_uri": "http://localhost:8080/auth/realms/apiv3/protocol/openid-connect/token",
        "token_introspection_uri": "http://localhost:8080/auth/realms/apiv3/protocol/openid-connect/token/introspect"
    }
}