我应该使用哪个库来获取访问令牌?

Posted

技术标签:

【中文标题】我应该使用哪个库来获取访问令牌?【英文标题】:Which library I should use to obtain access token? 【发布时间】:2018-03-24 20:30:23 【问题描述】:

我有一个使用 Google 登录的网页,我想代表用户访问用户的数据,即使他处于离线状态。

我正在寻找一个库的建议,我可以使用客户端发送到服务器的authorization code 来获取access tokenrefresh token

我按照官方指南here. 在第 7 步:用授权码交换访问令牌中,作者使用了似乎已弃用的 oauth2client 库:

注意:oauth2client 现已弃用。库中将不再添加任何功能,核心团队正在拒绝支持。我们建议您使用 google-auth 和 oauthlib。有关弃用的更多详细信息,请参阅 oauth2client 弃用。

所以我看了google-auth

此库不支持获取用户凭据,但对使用用户凭据提供有限支持。

我也看了oauthlib,但是有很多页面没有记录。

我正在使用带有 Flask 的 Python 3.x。

【问题讨论】:

我真的不明白我为什么会被否决,在乎有人给出原因或提示吗? 【参考方案1】:

使用Requests-OAuthlib结束。

pip install requests requests_oauthlib

from requests_oauthlib import OAuth2Session

oauth = OAuth2Session(client_id=GOOGLE_CLIENT_ID,
                      scope=GOOGLE_SCOPE,
                      redirect_uri='http://localhost:8000')

token = oauth.fetch_token(token_url=GOOGLE_TOKEN_URL,
                          code=authorization_code,
                          client_secret=GOOGLE_CLIENT_SECRET)

【讨论】:

以上是关于我应该使用哪个库来获取访问令牌?的主要内容,如果未能解决你的问题,请参考以下文章

在 JavaScript 中存储刷新令牌,获取新的访问令牌

我应该为每个请求从 sessionStorage 获取访问令牌吗?

客户端是不是应该使用 GET 或 POST 获取 OAuth 2 访问令牌?

提交到应用商店时我应该使用哪个证书

获取 Azure 访问令牌

在 facebook 应用程序中获取访问令牌时,redirect_uri 应该是啥?