标签: flask-oauthlib

在没有https的情况下在本地测试flask-oauthlib

我使用flask-oauthlib实现了oauth2服务器和oauth2客户端.

当我尝试在本地测试时,客户端返回InsecureTransportError并告诉我应该使用https.

有没有办法在没有https的情况下在本地测试应用程序?

客户端在127.0.0.2:5000上运行,服务器在127.0.0.1:5000上运行.

谢谢

flask oauth-2.0 flask-oauthlib

32
推荐指数
3
解决办法
1万
查看次数

带有Flask-Dance的Google OAuth(始终重定向到"选择帐户"google页面)

我有一个用Flask编写的应用程序,并尝试使用Flask-Dance(Flask-Dance Docs - Google示例)来启用Google OAuth.我得到了以下设置:

from flask import redirect, url_for, jsonify, Blueprint
from flask_dance.contrib.google import make_google_blueprint, google

from server.app import app

# Internal auth blueprint
auth = Blueprint('auth', __name__, url_prefix='/auth')

# Google auth blueprint
google_login = make_google_blueprint(
    client_id=app.config['GOOGLE_CLIENT_ID'],
    client_secret=app.config['GOOGLE_CLIENT_SECRET'],
    scope=['profile', 'email']
)


def auth_google_view():
    """
    Authenticate user with google
    """

    # Not authorized
    print(google.authorized)
    if not google.authorized:
        return redirect(url_for('google.login'))

    # Authorized - check data
    user_info = google.get('/oauth2/v2/userinfo')
    if user_info.ok:
        return jsonify({'status': 'ok', 'email': user_info.json() .['email']}), 200
    return jsonify({'status': …
Run Code Online (Sandbox Code Playgroud)

oauth flask google-oauth flask-oauthlib

7
推荐指数
1
解决办法
1454
查看次数

如何使用refresh_token获取新的access_token(使用Flask-OAuthLib)?

我正在使用FLask Framework构建一个网站+后端,我在其中使用Flask-OAuthlib与google进行身份验证.身份验证后,后端需要定期扫描用户的Gmail.因此,目前用户可以验证我的应用程序,我存储access_tokenrefresh_token.在access_token一小时后到期,所以一个小时内,我可以得到用户信息,如下所示:

google = oauthManager.remote_app(
        'google',
        consumer_key='xxxxxxxxx.apps.googleusercontent.com',
        consumer_secret='xxxxxxxxx',
        request_token_params={
            'scope': ['https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/gmail.readonly'],
            'access_type': 'offline'
        },
        base_url='https://www.googleapis.com/oauth2/v1/',
        request_token_url=None,
        access_token_method='POST',
        access_token_url='https://accounts.google.com/o/oauth2/token',
        authorize_url='https://accounts.google.com/o/oauth2/auth'
    )

token = (the_stored_access_token, '')
userinfoObj = google.get('userinfo', token=token).data
userinfoObj['id']  # Prints out my google id
Run Code Online (Sandbox Code Playgroud)

小时结束后,我需要使用refresh_token(我已经存储在我的数据库中)来请求新的access_token.我试着更换the_stored_access_tokenthe_stored_refresh_token,但是这只是给了我一个Invalid Credentials-错误.

这个github问题中,我阅读了以下内容:

无论您如何获得访问令牌/刷新令牌(无论是通过授权代码授予还是资源所有者密码凭据),您都可以通过将刷新令牌作为refresh_token并将grant_type设置为"refresh_token"来以相同的方式进行交换.

据我所知,我必须像这样创建一个远程应用程序:

google = oauthManager.remote_app(
        'google',
        #  also the consumer_key, secret, request_token_params, etc..
        grant_type='refresh_token',
        refresh_token=u'1/xK_ZIeFn9quwvk4t5VRtE2oYe5yxkRDbP9BQ99NcJT0'
    )
Run Code Online (Sandbox Code Playgroud)

但这导致了一个TypeError: __init__() got an …

python oauth google-api flask flask-oauthlib

6
推荐指数
1
解决办法
2537
查看次数

带 keycloak 的 Flask-OIDC - oidc_callback 默认回调不起作用

我正在尝试在一个简单的 Flask 应用程序中使用 Flask-oidc,以便通过 keycloak 添加身份验证。

但是,一旦我使用有效凭据登录,它就会返回到不存在的 /oidc_callback 。

Flask 日志显示了很多带有 302 结果代码的重定向尝试:

127.0.0.1 - - [26/Nov/2018 10:56:54] "GET /oidc_callback?state=eyJjc3JmX3Rva2VuIjogIlluRDc0UUVLVGhRRkw5TGtuRU9RZGprNTBheVk1cERkIiwgImRlc3RpbmF0aW9uIjogImV5SmhiR2NpT2lKSVV6STFOaUo5LkltaDBkSEE2THk5c2IyTmhiR2h2YzNRNk5UQXdNUzlzYjJkcGJpSS50MVVCRUszbFBxSmZRSzkzMHB5UktBNUZibmNtU0h6TElLblgweXgtTElJIn0%3D&session_state=96eb0bd8-a4a3-49a5-a00c-f4d621cd68e0&code=eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0..T5U8hwYX2ot7Llzo39-cyw.4r-lLPZ1So1j4jPqfVwW5zKgtFjMR_f38ls71SwyqrwLVnE-OfZIi0O74pgzNLQEhxFu2nT-o-7_iNuqv5EIHuaIk_mp-xAY7TlaCViM9NvEDvs78iTTmLwPHsDI20SWuPS08K1wING9CXjhZLudLsBAoWRomFHGfDI_Xyd90lb0wWa73vgcMoeatlt1sEbJTo7XxuDBg-JvyzGfqclvuh5bk848q-07tkDsTKETIK-0wLxb-vUaoqkYmqRVQ3-p.PP0YzjGpjvIqCTNCk3IZTQ HTTP/1.1" 302 -
127.0.0.1 - - [26/Nov/2018 10:56:54] "GET /login HTTP/1.1" 302 -
127.0.0.1 - - [26/Nov/2018 10:56:54] "GET /oidc_callback?state=eyJjc3JmX3Rva2VuIjogIlluRDc0UUVLVGhRRkw5TGtuRU9RZGprNTBheVk1cERkIiwgImRlc3RpbmF0aW9uIjogImV5SmhiR2NpT2lKSVV6STFOaUo5LkltaDBkSEE2THk5c2IyTmhiR2h2YzNRNk5UQXdNUzlzYjJkcGJpSS50MVVCRUszbFBxSmZRSzkzMHB5UktBNUZibmNtU0h6TElLblgweXgtTElJIn0%3D&session_state=96eb0bd8-a4a3-49a5-a00c-f4d621cd68e0&code=eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0..JpVESxYMF7ApS07y_cOxmA.FRX0kTvi_YvRTYnA8OVmkuEHDrVr8cf9Xa9zk2KfXovb4f9vpz6oIcuqjM-EYVfC5PVLYObhVQWW9HZW4Omcewpp-t9M2z7YRZqMAuyeYAsN7_uctScoh6Q634YDSlXiyXnQ81zg3VwVC_C3pWjVnlm8ZLKb5mRAnMDe4li3FXj9OYWlzJu3Ti18TOw2ig2eB0H0D-jdMcMS4Y8CtLOX_IEKQs6f6IXgl6jpo7uDYvKnwQ11zVaX-Bvw8oan79M2.ZwuIdSCc4QYv2imcbp2Tig HTTP/1.1" 302 -
127.0.0.1 - - [26/Nov/2018 10:56:54] "GET /login HTTP/1.1" 302 -
127.0.0.1 - - [26/Nov/2018 10:56:54] "GET /oidc_callback?state=eyJjc3JmX3Rva2VuIjogIlluRDc0UUVLVGhRRkw5TGtuRU9RZGprNTBheVk1cERkIiwgImRlc3RpbmF0aW9uIjogImV5SmhiR2NpT2lKSVV6STFOaUo5LkltaDBkSEE2THk5c2IyTmhiR2h2YzNRNk5UQXdNUzlzYjJkcGJpSS50MVVCRUszbFBxSmZRSzkzMHB5UktBNUZibmNtU0h6TElLblgweXgtTElJIn0%3D&session_state=96eb0bd8-a4a3-49a5-a00c-f4d621cd68e0&code=eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0..4SU_gWqEUykjTc78z47zYg.TzPRPlLCmJ7Ofzp5wHMwJam4pmc21_qo0p8bIpULbDE8Q39IESxSO2Sxqvxi67xnNXL90CqbG5uRt3k_2oDPzFUCjoNw0EDibiqSPlnuMNgizGSCXAyVV8DafMJqTGhnbHUUpGVqLzMosIlfwM14jhjXFick0GaC10TPFFdiGZdfVFZlSH95XtrGQ-e9dfgpvi5ioPhlQ1S9Eo9kqSh9WwhOCfGRZe9GNLNFtUT9YCPHHmLirRNLc5NiOdm-kH3L.2Mmopk3YJ0_AiCjk2ArKwQ HTTP/1.1" 302 -
...
Run Code Online (Sandbox Code Playgroud)

经过一段时间的尝试后,我在控制台中也收到此错误:

oauth2client.client.FlowExchangeError
oauth2client.client.FlowExchangeError: invalid_grantCode not valid
Run Code Online (Sandbox Code Playgroud)

这是我的烧瓶应用程序代码:

import json
from flask import Flask, g
from flask_oidc …
Run Code Online (Sandbox Code Playgroud)

python flask keycloak flask-oauthlib

6
推荐指数
1
解决办法
1万
查看次数

生产中的Flask-oauthlib或authlib?

我刚刚在我正在建设的网站上工作了flask-oauthlib.但是,我注意到项目的首页有一个警告,要求使用authlib.

如果您在生产中使用flask-oauthlib,您是否计划迁移到authlib?是否有人知道这个迁移已完成的简单项目回购?我非常欣赏一些东西.

flask-oauthlib页面,注意警告:

https://flask-oauthlib.readthedocs.io/en/latest/

flask flask-oauthlib authlib

3
推荐指数
1
解决办法
1770
查看次数

在 Flask-Oauthlib 中使用 Json Web 令牌

对于客户端项目,我正在开发一个使用 Flask 作为后端的 Web 应用程序。

所以我决定使用 Flask-oauthlib 来尝试使提供刷新令牌和撤销访问令牌变得简单。然而,有些事情我仍然很难理解。

编写 oauth 服务器时,如何使用默认访问/刷新令牌生成和提供 JSON Web 令牌?

我还想知道的另一件事是我将如何从 http 请求验证 JSON Web 令牌?

任何建议表示赞赏。

flask oauth-2.0 python-3.x json-web-token flask-oauthlib

2
推荐指数
1
解决办法
1259
查看次数