问题标签 [flask-oauthlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
347 浏览

heroku - github.GithubException.GithubException: 401 on Heroku 当想要在用户的公共仓库上创建一个仓库-Github API

我正在使用 python、Flask_OAuthlib 和 heroku 制作这个应用程序,以访问用户 Github 的公共存储库并创建一个存储库并在那里复制所需的文件。该应用程序已连接,并且还作为授权 OAuth 应用程序获得以下权限。 我的 OAuth 应用程序的 Github 权限

然后我有这段代码在用户 Github 的公共 repos 空间中创建一个存储库并在那里复制一些文件

当用户按下按钮时会触发此代码,并且该按钮仅在登录时才可访问,并且该应用程序会显示其 Github 中的用户名和个人资料图片。因此它在与 Github 的会话中非常好。但是后来heroku犯了这个错误:

github.GithubException.GithubException: 401 {'message': '需要身份验证'

我可以看到身份验证存在问题。theToken以这种方式捕获。首先theToken=None,我在代码顶部创建了一个,然后在/login部分中我将其捕获如下:

我想知道我在这里缺少什么。谢谢你的帮助

0 投票
1 回答
111 浏览

python-3.x - 向用户数据添加新的 openTypeExtension 的后调用失败,并显示“找不到段'扩展'的资源”

我通过向 graphcall 函数添加新操作来修改sample_flask.py。新的 MSGRAPH.post 调用应该为用户创建一个 openTypeExtension。代码如下:

完整的端点路径是https://graph.microsoft.com/v1.0/me/extensions,我也尝试过使用绝对 uid 路径。标头是从源代码中的 get 示例中回收的。任何一种情况都会导致以下错误:

我检查了 jwt.ms 中的令牌以获取必要的范围,我已将其提升为 User.ReadWrite.All 并授予权限。当我在 Graph Explorer 中测试 post 方法时,一切都很顺利,并且创建了扩展。

这里有明显的错误吗?我一直在阅读与“找不到资源”错误和 openTypeExtension 相关的所有内容,但到目前为止还没有发现任何相关内容。

0 投票
1 回答
1135 浏览

github - Airflow GitHub 身份验证失败

我已经有一个 Airflow 的工作实例。我现在正在尝试使用 GitHub Enterprise 身份验证设置 Airflow。就文档而言,可用的资源并不多,而且我在网上没有找到任何好的示例,所以我遇到了一些麻烦。当我将身份验证设置为 false 时,Airflow 实例工作正常,但是当我尝试打开身份验证并启动 Airflow 实例时,我收到以下错误 CRITICAL - Cannot import authentication module airflow.contrib.auth.backends.github_enterprise_auth. Please correct your authentication backend or disable authentication: No module named 'flask_oauthlib'

airflow.cfg文件的相关部分如下:

我尝试完全重新创建我的虚拟 Python 环境并 pip 安装 Flask_OAuthlib 但仍然没有运气。

有没有人知道如何做到这一点并且可以向我解释如何让它工作。

是我能找到的关于这个主题的唯一文档,我仍然不清楚。

0 投票
1 回答
411 浏览

python - Flask python setup:安装时的oauthlib版本问题

我对烧瓶非常陌生 - 现在只需设置它以遵循有关如何构建包括登录的 Web 应用程序的教程。

本教程需要的一些包是requests-oauthlib,flask-oauthliboauthlib.

我在安装要求时遇到了这个问题:

好的,我需要降级oauthlib才能满足flask-oauthlib

我将其降级并重新运行所有内容,并收到此错误:

所以现在我需要再次升级oauthlib 以满足requests-oauthlib.

所有的包裹都在抱怨什么,但由于我对此很陌生,我不知道该听哪一个!

我的猜测是降级requests-oauthlib直到错误停止?

这些包都与flask的用户登录部分相关联,所以对于那些熟悉这方面的人,我应该使用所有三个版本的稳定配置吗?

否则,我只是盲目地猜测和降级,直到某些东西起作用。

0 投票
1 回答
88 浏览

python - 在 Authlib 中,如何在与我调用构造函数的文件不同的文件中使用 oauth.create_client?

我需要使用 Authlib 连接到网站。我是这方面的新手,所以我研究了一些教程:.,所有它们都给出了以下结构:

  1. 创建app实例;
  2. 创建oauth实例,传递appOAuth构造函数;
  3. oauth在路由功能装饰器中使用。

这个结构在同一个文件中。问题是我需要oauth在与创建实例(上面的第 3 点)的文件不同的文件中使用该实例,但我不知道该怎么做。一些帮助是不必要的。

有用的代码:

__init__py

/index/index_routes.py

0 投票
1 回答
748 浏览

python - ImportError:无法从“oauthlib.common”导入名称“bytes_type”

我正在将气流从 1.10.5 更新到 1.10.10。使用 google OAuth 时,我在网络服务器中收到以下错误

此错误是由于依赖项不匹配造成的。Airflow 1.10.10正在安装oauthlib==3.1.0andFlask-OAuthlib==0.9.53.1.0 version of oauthlib,没有 bytes_type 而 Flash-OAuthlib 期望它存在。

考虑到lepture已归档flask-oauthlib并创建了authlib,我在lepture 的airflow 中看到了有关此更改的PR https://github.com/apache/airflow/pull/6140/files但它没有被合并并被标记为陈旧机器人

有人在 Airflow 1.10.10 中遇到过这个问题吗?我已经通过更改inrequirement.txtoauthlib version to 2.1.0解决了这个问题

0 投票
1 回答
206 浏览

authlib - OIDC 提供程序烧瓶。密码凭证授予

有人知道 authlib python 库是否支持Flask OIDC 提供程序的资源所有者密码凭据授予流程?

在文档中只出现代码、隐式和混合流。

https://docs.authlib.org/en/latest/flask/2/openid-connect.html

如果是这样,请您告诉我您如何实现该功能?

0 投票
1 回答
99 浏览

flask - 不同域上的 Flask Dance oauth

我正在为不同的服务实现 Oauth,并且正在使用“OAuth2ConsumerBlueprint”(使用烧瓶舞)。我正在考虑 Flask-OAuth,但我认为我最终会遇到与 Flask-Dance 相同的问题。我打算做的是:

  1. 用户继续“.mydomain.com”

  2. 例如,用户单击通过 FB 登录

  3. 用户访问 social.mydomain.com(以便授权 URL 始终相同)

  4. 登录后的用户应该被带到“.mydomain.com”

看起来我找不到办法做到这一点..这应该是可行的。我试图解析出不同的信息,例如:

打印(请求)

打印(request.referrer)

我什至使用了:@oauth_authorized.connect 打印了所有信息,看看我是否可以收集一些额外的信息以重复使用

此外,我尝试在 GET 参数中添加一个“foo”变量,以查看是否可以从 social.mydomain.com 再次读取它,但我不能。不知道如何将用户重定向回原来的 .mydomain.com

关于如何在特定子域上完成身份验证(因此我只需要将一个子域列入白名单)然后将用户重定向到他自己的域的任何建议?

这就是我设置一切的方式:

非常感谢

0 投票
1 回答
281 浏览

python - 自动sso登录

我想在我的应用程序中为多个提供商实现 sso。目前我正在使用flask-oauthlib身份验证。对于 google 身份验证,sso 登录就像一个魅力。
由于我将有多个 sso 提供商,我想知道是否可以在我的登录页面上简单地设置一个文本字段,然后根据电子邮件域将用户重定向到正确的 sso 提供商,同时自动初始化握手过程。
问题是,我是否可以自动化 sso 登录,而无需用户在 Google 上选择他们的帐户Choose an account page;从而节省了额外的步骤?我希望这是有道理的,谢谢!

0 投票
1 回答
519 浏览

python - 如何解决 InvalidClientError (oauthlib.oauth2)

我目前正在尝试使用 OAuthlib 将 Google 登录功能集成到我的本地 Flask Web 应用程序中。在尝试运行 Flask Google-Login 功能的完成实现时,如RealPython所示,我遇到了这个错误:

oauthlib.oauth2.rfc6749.errors.InvalidClientError: (invalid_client) Unauthorized

它指向我routes.py文件中的这行代码:

我不知道为什么会出现此错误,我该如何解决?

以下是我的app/__init__.py文件和routes.py文件中的示例:

app/__init__.py


app/routes.py