我正在构建一个应用程序,使用django在python中访问Github api。我是第一次建立这种应用程序的新手。 我指定了一个链接来获取用户帐户的访问权限
<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
的{{1}}的post参数。以及如何为不同用户链接不同的访问权限。请帮我。我在掌握基础知识方面遇到了问题。
答案 0 :(得分:1)
我建议使用Python Social Auth,然后在将其设置为Github backend后利用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']
如果您想继续使用链接,也可以在模板中提供令牌。而且,您不需要将范围作为查询参数传递,当然,Python Social Auth也可以为您处理