Я пытаюсь создать приложение django, которое предоставляет представление после аутентификации с использованием oauth1. Внешнее приложение отправляет данные формы POST с помощью oauth_consumer_key, и я хочу проверить его с помощью моего приложения django и предоставить соответствующее представление после аутентификации. Может кто-нибудь сказать мне поток этого процесса. Я относительно новичок во всем этом. Кроме того, в этом процессе нет обмена токенами.
Это домашний вид для моего приложения
from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader
from . import models
from django.views.decorators.csrf import csrf_exempt
from urllib.parse import urlparse
import oauth2
@csrf_exempt
def home(request):
consumer = None
body_dict = dict([(key,value) for key,value in request.POST.items()])
oauth_request = oauth2.Request.from_request(request.method ,body_dict.get('launch_presentation_return_url'),parameters=body_dict)
request_key = oauth_request.get_parameter('oauth_consumer_key')
if request_key == models.Verify.consumer_key :
consumer = oauth2.Consumer(key=request_key,secret = "")
signature_method = oauth2.SignatureMethod_HMAC_SHA1()
oauth_request.sign_request(signature_method,consumer,None)
server = oauth2.Server()
server.add_signature_method(oauth2.SignatureMethod_HMAC_SHA1())
try :
server.verify_request(oauth_request,consumer, None)
except oauth2.Error as e :
if str(e)[:18] == 'Expired Timestamp':
res = HttpResponse('Unauthorized')
res.status_code = 401
return res
elif str(e)[:17] == 'Invalid Signature':
res = HttpResponse('Unauthorized')
res.status_code = 401
return res
else:
raise e
base_template = 'DemoApp/base.html'
template = loader.get_template(base_template)
return HttpResponse(template.render())
Также я уверен, что в этом коде гораздо больше ошибок. Направь меня, если сможешь. Спасибо