问题标签 [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.
python - OAuth 登录完成后重定向到上一个 URL(flask-dance)
我正在开发一个 Flask 应用程序,它允许用户使用 OAuth(以 Github 作为提供者)和 flask-dance 库登录。由于某种原因,在成功登录后,我无法重定向到我将用户发送到登录页面的页面。
当用户尝试连接到例如http://localhost:6675/examples/tutorial.first/时,用户将被重定向到登录页面,在 URL 中显示我们应该重定向到的页面 ( http://localhost :6675/login?next=%2Fexamples%2Ftutorial.first%2F )
问题是,在我设法使用 Github 登录后,应用程序只是回到主页。
我正在检查 Flask-dance文档,该make_github_blueprint()
函数的文档提到了参数redirect_to
和redirect_url
,但是当我尝试使用它们时,我什至无法完成登录步骤。此外,它似乎只适用于静态地址,而理想情况下我想跳回到登录前的页面。我也检查了这个 SO question,但那里的问题似乎有所不同。
有没有关于在使用 Flask dance 登录后如何正确进行重定向的示例?
这里有一些可能相关的代码片段。在初始化.py 文件中:
在 app.py 文件中:
python - 值得信赖的客户
我需要使用 Authlib 在 SSO 中添加受信任的客户端。这些客户端是我系统的一部分,我不需要用户确认。现在,我使用下一个代码进行授权:
但是我如何预先注册我的所有客户,让他们自动确认?
python - 如何验证受信任资源服务器的 access_token?
我有授权服务器和资源服务器...当客户端向资源服务器发送请求时,我的资源服务器必须向授权服务器发送请求以验证令牌是否仍然有效。
但是如何使用 Authlib 进行验证呢?我在他们的文档中找不到示例...
简而言之,我需要以下内容:
在发布请求时:
如何实现这样的路线?
PS对我来说可以接受任何变体,只是现在我完全不知道如何验证令牌。
python-3.x - 将“flask_oauthlib.client”更新/转换为“authlib.flask.client” - 无需用户即可访问 Microsoft Graph v2
我的目标是实现这一点: https ://github.com/Azure-Samples/active-directory-python-flask-graphapi-web-v2
使用较新的 Authlib 库。 https://github.com/lepture/authlib
我需要一个使用证书(无用户登录)进行身份验证并使用 Microsoft 的 Graph API 从 Azure AD(v2.0 端点)SharePoint 文档库中获取数据的应用程序。
这是使用“flask_oauthlib”的原始代码:
这是我到目前为止更新为“authlib.flask”的代码:
我坚持的部分是如何处理:
来自“将 OAuth 客户端从 Flask-OAuthlib 迁移到 Authlib”中的 Authlib 文档说明如下:
如果您想使用 oauth.twitter.get(...) 之类的方法访问资源,则需要确保有一个可以使用的访问令牌。这部分在 Flask-OAuthlib 和 Authlib 之间非常不同。
在 Flask-OAuthlib 中,它由装饰器处理:
tokengetter 返回的令牌可以是元组或字典。但是在 Authlib 中,它只能是一个 dict,并且 Authlib 不使用装饰器来获取令牌,而是应该将此函数传递给注册表:
https://blog.authlib.org/2018/migrate-flask-oauthlib-client-to-authlib
我不知道如何处理“@microsoft.tokengetter”
有没有人有什么建议?
python - 带有 keycloak 的 Flask-OIDC - oidc_callback 默认回调不起作用
我正在尝试在一个简单的烧瓶应用程序中使用 Flask-oidc,以便通过 keycloak 添加身份验证。
但是,一旦我使用有效凭据登录,它就会返回到 /oidc_callback ,它不存在。
烧瓶日志显示了许多使用 302 结果代码进行重定向的尝试:
经过一段时间的尝试,我在控制台中也收到了这个错误:
这是我的烧瓶应用程序代码:
这是我的 keycloak.json:
在我的 Keycloak 管理控制台中,我已经设置了我的客户端,据我了解,它正确显示 keycloak 登录屏幕的事实是因为它已按预期配置,但是一旦执行登录,我就无法使应用程序工作。
我还尝试覆盖默认回调(我不清楚是否必须实现它):
为此,我添加了这个(取自文档):
OVERWRITE_REDIRECT_URI='http://localhost:5001/custom_callback'
这是我的keycloak.json:
但是识别登录用户没有成功。虽然我在查询字符串中看到了一个状态变量 .. 我该怎么办?
我错过了什么?
我应该实现自定义回调吗?在这种情况下,任何人都可以举一个例子来说明如何让我的烧瓶应用程序知道用户登录?
提前非常感谢!
python - 错误:flask_oidc:错误:无法获取令牌信息 - 错误:flask_oidc:'token_introspection_uri'
我有一个从 Javascript 客户端调用的 Flask rest api。尝试将 Keycloak 集成为身份验证服务器时,我使用烧瓶(使用 flask_oidc)没有成功,所以我首先从 javascript 客户端(有效)进行身份验证,然后使用令牌与烧瓶 rest api 对话。
但是,每当我尝试使用令牌调用休息服务时,我都会收到此错误:
这是我在烧瓶中的代码、设置和 keycloak.json:
...
...
有任何想法吗?
更新 我将 httplib2 降级为 0.11.3,现在错误是:
在定义其余入口点时也添加(require_token=True)
到@oidc.accept_token
装饰器中,然后在邮递员中,当我尝试使用在 javascript 客户端中获得的相同令牌(成功通过身份验证)对服务执行获取请求时,我收到此错误:
{"error": "invalid_token", "error_description": "Token required but invalid"}
google-api - 从 Admin Directory API 检索组织名称
我正在使用https://flask-oauthlib.readthedocs.io/en/latest/来处理 Google OAuth API。我能够连接和检索用户数据。但仍然面临获取用户组织名称的问题。
根据文档https://developers.google.com/admin-sdk/directory/v1/guides/manage-users,API 应该返回组织名称。
“组织”:[{“名称”:“谷歌公司”,“标题”:“SWE”,
“主要”:true,“customType”:“”,“描述”:“软件工程师”}],
但随着
返回的结果看起来像
python-3.x - ImportError:无法在 flask_oauthlib 中导入名称“bytes_type”
我尝试使用flask_oauthlib 构建应用程序并将其部署到heroku,但出现一些错误
有什么想法可以解决吗?仅当我尝试在 heroku 中部署时应用程序错误,但在 localhost 中工作正常
python - Flask-OAuth TypeError:Unicode 对象必须在散列之前进行编码
我正在尝试按照此示例将 Flask-OAuth 与 Facebook 一起使用。我已经根据我的定义了 APP_ID和APP_SECRET。
我现在可以使用 facebook 帐户登录,但是当它在登录后重定向时,我收到了这个错误:
根据示例代码如果没有编辑,错误行在第48行
那么,这有什么问题..?
python-3.x - 如何在 Grant 类中实现 validate_redirect_uri?
我正在尝试从 https://github.com/lepture/flask-oauthlib/tree/master/tests/oauth2/server.py代码库在 Python 中实现 Oauth2 提供程序服务器,但在尝试执行一些重定向 uri 验证自定义时卡住了对于 Oauth2 授权(类型=授权代码)流程。
根据 Oauth2.py,我应该能够添加一个名为 validate_redirect_uri() 的函数来进行我自己的自定义 redirect_uri 验证。但是,在 Grant 类中实现“def validate_redirect_uri(self,redirect_uri):”后,发现当我使用“response_type=code&client_id=confidential&redirect_uri=https%3A%2F%2fXXX.com”等参数发布到 /oauth/authorize 时,它从未被调用过%2Foauth%2Fcallback%3FXXX%3D111&state=11"
我确信该帖子很好(范围已放在 POST 正文中,因此它没有丢失),因为如果我只将 redirect_uri 更改为未自定义的,它就可以了。
在 Server.py 中:
授予类(db.Model):
在 oauth2.py 中
“print('validate_redirect_uri:', redirect_uri,'\n')” 从未被打印,所以函数“validate_redirect_uri(self, redirect_uri)” 从未被调用?