Cookie CSRF не устанавливается в Django после вызова API
У меня есть небольшое веб-приложение Django, которое позволяет войти в систему с помощью платформы, используя их API. Пользователь может войти в систему, но обратный вызов из входа в систему возвращает эту ошибку: Forbidden (CSRF cookie not set.): /account/platforms/apicallback/
на выходе моего сервера. Я полагаю, что обратный вызов действительно направляется на правильный url в моем веб-приложении, но когда он добирается до связанного с ним представления, возникает ошибка CSRF cookie.
Ниже приведен код моего запроса:
params = {
"app_name": "My App",
"scope": scope,
"user_id": request.user.id,
"return_url": redirect_uri,
"callback_url": "https://www.myapp.co.uk/account/platforms/apicallback",
"state": {"platform":"api"}
}
query_string = urlencode(params)
url = "%s%s?%s" % (auth_url, query_string)
return redirect(url)
Вот файл urls.py, который содержит url обратного вызова:
urlpatterns = [
path(r'apicallback/', views.apicallback, name='apicallback'),
]
Вот файл views.py с представлением для url обратного вызова:
@login_required
def apicallback(request):
consumer_key = request.GET.get('consumer_key')
consumer_secret = request.GET.get('consumer_secret')
У меня есть два API, которые уже работают с моим веб-приложением и оба используют OAuth2.0, и я не сталкивался с этой проблемой раньше. Есть идеи, как это исправить без отключения CSRF cookies. Спасибо