如何使用 python Github api 使用 oauth2 获取访问令牌

How to get access token using oauth2 for Github api using python

我正在构建一个应用程序以使用 django 在 python 中访问 Github api。我是第一次构建这种应用程序的新手。 我指定了一个 link 来获取这样的用户帐户的访问权限

<a href="https://github.com/login/oauth/authorize?client_id=something&scope=something,something"></a>

现在我可以访问用户的帐户了。现在的问题是,我想使用 oauth2,这样它就不会为每个请求询问用户名和密码。 我的问题是如何获取 access_token 以及将其存储在何处。如何在我的 Django 视图中传递 POST https://github.com/login/oauth/access_token 的 post 参数,例如 client_id, scope, code。以及如何 link 为不同的用户提供不同的访问权限。请帮我。我在正确掌握基础知识方面遇到问题。

我推荐使用 Python Social Auth and then leveraging their Github backend after setting it up to work with your django app

因此,您大致可以使用类似以下内容来传递访问令牌:

import requests

user = User.objects.get(...)
social = user.social_auth.get(provider='github')
response = requests.get(
   'https://github.com/login/oauth/authorize? 
    client_id=something&scope=something,something',
    params={'access_token': social.extra_data['access_token']}
)
retrieved_data = response.json()['items']

如果您想继续使用 link,您还可以在模板中提供令牌。而且,您不需要将范围作为查询参数传递,当然,Python Social Auth 也可以为您处理