在 OAuth2 中,如果一个客户端不应该共享它的访问令牌,那么多个客户端如何访问同一个资源呢?
In OAuth2, if a client should not share its access token, then how can multiple clients access the same resource?
我正在使用带有 discord oauth 2 登录的烧瓶后端创建一个反应 SPA。我想知道 Flask 可用的当前用户的 discord 用户 ID,并使用 SPA 显示有关用户的信息,例如用户名和个人资料图片。
如果我通过 flask 设置登录页面,我可以通过查询当前用户 discord API 来获取有关登录用户的信息。
但是如何在 SPA 中获取姓名和头像?我可以将 flask 获得的访问令牌提供给 SPA,但不建议共享令牌。
另一种方法是隐式授权流程,其中 SPA 获取访问令牌并将其提供给 Flask。然后 Flask 可以检查谁登录了。
这也涉及不推荐在 ouath2 客户端之间共享令牌。
我不确定如何在用户无需多次登录的情况下获取 flask 和 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())
您的访问令牌始终由后端访问。
我正在使用带有 discord oauth 2 登录的烧瓶后端创建一个反应 SPA。我想知道 Flask 可用的当前用户的 discord 用户 ID,并使用 SPA 显示有关用户的信息,例如用户名和个人资料图片。
如果我通过 flask 设置登录页面,我可以通过查询当前用户 discord API 来获取有关登录用户的信息。 但是如何在 SPA 中获取姓名和头像?我可以将 flask 获得的访问令牌提供给 SPA,但不建议共享令牌。
另一种方法是隐式授权流程,其中 SPA 获取访问令牌并将其提供给 Flask。然后 Flask 可以检查谁登录了。 这也涉及不推荐在 ouath2 客户端之间共享令牌。
我不确定如何在用户无需多次登录的情况下获取 flask 和 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())
您的访问令牌始终由后端访问。