Как при помощи Python реализовать вход на сервер ресурсов(Oauth2.0)?
У меня учебный проект, суть которого такова: есть готовый access token, пришедший от сервера авторизации, который генерируется каждые 5 минут. Нужно с помощью него войти на сервер ресурсов(СР) и получить доступ к защищенным файлам. Токен представляет собой набор символов, для примера обозначим его как 1243545324efedd. Мне нужно написать консольное приложение(или хотя бы близкую к нему модель), которое будет этот токен отправлять на сервер ресурсов. Сам СР выполнен на QT, но я свое приложение пишу на python как наиболее мне знакомый язык.
def github_callback(request):
# запрос access token
params = {
'client_id': '123asd45678a12345678',
'client_secret': '12345qwert12345qwert12345qwert12345qwert',
'code': code
}
headers = {'accept': 'application/json'}
url = 'https://github.com/login/oauth/access_token'
r = requests.post(url, params=params, headers=headers)
if not r.ok:
raise Http404
data = r.json()
access_token = data['access_token']
# применение access token
headers = {
'authorization': 'token %s' % access_token
}
r = requests.get('https://api.github.com/user', headers=headers)
r.json()
>>> {
"aud":"https://consumer.example.com/",
"iss":"https://issuer.example.com/",
"exp":1443904177,
"nbf":1443904077,
"sub":"dgaf4mvfs75Fci_FL3heQA",
"scope":"email profile phone address"
}
from github import Github
from django.shortcuts import redirect
from django.contrib.auth import authenticate
from django.contrib.auth import login
from .models import GitHubUser
def github_callback(request):
# get the token...
g_user = Github(login_or_token=access_token).get_user()
user = GitHubUser.objects.create_user(
login=g_user.login, token=access_token
)
user = authenticate(login=user.login)
login(request, user)
return redirect('home')