flask - 在 OAuth2 中,如果一个客户端不应该共享其访问令牌,那么多个客户端如何访问同一个资源?
问题描述
我正在创建一个带有不和谐 oauth 2 登录的烧瓶后端的反应 SPA。我想知道可用于烧瓶的当前用户的不和谐用户 ID,并使用 SPA 显示有关用户的信息,例如用户名和个人资料图片。
如果我通过烧瓶设置登录页面,我可以通过查询当前用户不和谐 API 来获取有关登录用户的信息。但是如何在 SPA 中获取姓名和头像?我可以将烧瓶获得的访问令牌提供给 SPA,但不建议共享令牌。
另一种方法是隐式授权流程,其中 SPA 获取访问令牌并将其提供给烧瓶。然后 Flask 可以检查谁登录了。这还涉及 ouath2 客户端之间的令牌共享,不推荐。
我不确定如何在无需用户多次登录的情况下获取烧瓶和 SPA 的访问令牌
解决方案
这是一个设计问题。您的 SPA 应该通过您的 Flask 后端 API 获取不和谐信息。你的 SPA 不应该直接访问 discord api,而且通常不可能直接访问第三方 api,因为 cors.
这是一个例子:
@app.route('/discord/profile')
def get_discord_profile():
resp = oauth.get('/discord/profile/url')
return jsonify(resp.json())
您的访问令牌始终由后端访问。
推荐阅读
- vb.net - 如何将宽字符串变量从 Delphi 传递到 VB 作为字符串
- powershell - FileSystemWatcher 在 PowerShell 关闭之前不会触发事件
- postgresql - 在没有连接的情况下查找与不同表中至少 n 行相关的行
- google-places-api - 如何使用 google place api 或 place data api 获取某个地方的便利设施
- git - 使用 Jenkins 将本地文件夹推送到 git
- php - 如何从原始数组中安排预期的新数组
- html - 为什么推特卡不显示图片?
- jquery - Jquery 函数内部不执行算术运算
- angular - NullInjectorError:没有 HttpClient 的提供者(已导入)
- html - 显示货币时如何返回 2 位小数的 Ruby 浮点数