You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@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! Return'
if name == 'main':
app.run(debug=True, host='0.0.0.0')`
I am trying to setup WSO2 IS with a simple flask api. I am trying to use https://gist.github.com/thomasdarimont/145dc9aa857b831ff2eff221b79d179a, however, I get always token invalid with unable to get token info error.
Code:
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': 'manager',
'OIDC_SCOPES': ['openid', 'email', 'profile'],
'OIDC_CALLBACK_ROUTE': '/oidc/callback',
'OIDC_INTROSPECTION_AUTH_METHOD': 'client_secret_post',
'OIDC_TOKEN_TYPE_HINT': 'access_token',
'OIDC_CLOCK_SKEW': 560 #iat must be > time.time() - OIDC_CLOCK_SKEW
})
oidc = OpenIDConnect(app)
@app.route('/')
def hello_world():
if oidc.user_loggedin:
return ('Hello, %s, See private '
'Log out') %
oidc.user_getfield('preferred_username')
else:
return 'Welcome anonymous, Log in'
@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! Return'
if name == 'main':
app.run(debug=True, host='0.0.0.0')`
client_secret.json:
`{
"web": {
"issuer": "https://localhost:9443/oauth2/token",
"auth_uri": "https://localhost:9443/oauth2/authorize",
"client_id": "xxxx",
"client_secret": "xxxx",
"redirect_uris": [
"http://localhost:5000/oidc/callback"
],
"userinfo_uri": "https://localhost:9443/oauth2/userinfo?schema=openid",
"token_uri": "https://localhost:9443/oauth2/token",
"token_introspection_uri": "https://locahost:9443/oauth2/introspect",
}
`
I'm trying to access http://localhost:5000/api with authorization header bearer access token:
The flask error shows ERROR:flask_oidc:ERROR: Unable to get token info
ERROR:flask_oidc:Expecting value: line 1 column 1 (char 0)
The text was updated successfully, but these errors were encountered: