2

I am building an app to access Github api in python using django. I am new to this building this kind of app for the first time. I specified an link to get the access of a user's account like this

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

Now I can access the user's account. Now the problem is, I want to use oauth2 so that it doesn't ask for username and password for each request. my question is how to get the access_token and where to store it. How to pass post parameter of POST https://github.com/login/oauth/access_token such as client_id, scope, code in my django view. And how to link different access for different user. Please help me. I am having problem in getting the basics right.

1 Answer 1

4

I recommend using Python Social Auth and then leveraging their Github backend after setting it up to work with your django app.

So, you would roughly be able to pass the access token using something like:

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']

You can also make the token available in your template if you'd like to continue using a link. And, you don't need to pass the scope as a query parameter, certainly, Python Social Auth can also handle that for you

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.