У меня есть настройка django-rest-framework-social-oauth2 для получения токена из django с помощью провайдера facebook:
curl -X POST -d "grant_type=convert_token&client_id=<client_id>&client_secret=<client_secret>&backend=facebook&token=<facebook_token> https://dev.myapp.com/api/auth/convert-token
Каждый раз, когда я делаю запрос к своему приложению, я добавляю токен в заголовок:
curl -i https://dev.myapp.com/api/users -H "Authorization: Bearer mytoken123"
Пока все работает
Я использую ReactJs в качестве внешнего интерфейса и выполняю вышеуказанный запрос от responsejs:
axios.post("https://dev.myapp.com/api/auth/convert-token", postData).then(res => {console.log(res);}
Если пользователь закрывает окна,он выходит из системы, так как у него больше нет доступа к токену, и если он возвращается к моему приложению, ему необходимо снова войти в систему.
Я бы хотел использовать куки-файл браузера для сохранения токена.я получаю от django-rest-framework-social-oauth2 и защищаю его защитой csrf, чтобы позволить пользователю получить доступ к моему приложению, не нажимая снова и снова «логин»
Я не знаю, как это сделать ия не знаю, возможно ли это?
Как мне установить django-rest-framework-social-oauth2, чтобы получить csrftoken и использовать его для каждого вызова API?
Единственное решение, которое яесть, чтобы создать другой видэто создаст файл csrftoken
from django.shortcuts import render_to_response
from django.template.context_processors import csrf
def my_view(request):
c = {}
c.update(csrf(request))
data='my test'
# ... view code here
return Response(data, c)
Это представление возвращает файл cookie csrftoken
Но я хотел бы получить этот файл cookie csrftoken в то же время, чтобы получить токен oauth2.
Как я могу это сделать?У вас есть пример?какой-нибудь документ?Каков наилучший способ сделать это?
Если это невозможно, знаете ли вы какую-либо альтернативу, чтобы позволить пользователю получить доступ к моему приложению, не нажимая каждый раз «логин»?
Спасибо за ваши ответы