#python #reactjs #django #redirect #django-rest-framework
#python #reactjs #django #перенаправление #django-rest-framework
Вопрос:
Есть много вопросов, похожих на этот, но ни один из них не отражает ситуацию, в которой я нахожусь. Я кодирую приложение Django / React и интегрировался с Spotify. В настоящее время на стороне Django у меня есть пользователь, который перенаправляется обратно на страницу своего профиля после подключения к Spotify. Это делается путем жесткого кодирования URL-адреса с перенаправлением http-ответа:
class SpotifyCallbackView(RedirectView):
def handle_callback(self, request):
print(self.request.META)
if request.GET.get("refresh_token", False):
refresh_token = request.GET["refresh_token"]
code = request.GET["code"]
if request.GET.get("refresh_token", False):
response = requests.post(
"https://accounts.spotify.com/api/token",
data={
"grant_type": "refresh_token",
"refresh_token": refresh_token,
},
headers=AUTH_HEADER,
)
return response.json()
else:
response = requests.post(
"https://accounts.spotify.com/api/token",
data={
"grant_type": "authorization_code",
"code": code,
"redirect_uri": request.build_absolute_uri("callback"),
},
headers=AUTH_HEADER,
)
return response.json()
def get(self, request, *args, **kwargs):
auth_items = self.handle_callback(request)
access_token = auth_items["access_token"]
if "refresh_token" in auth_items.keys():
refresh_token = auth_items["refresh_token"]
else:
refresh_token = ""
if refresh_token != "":
return HttpResponseRedirect('http://localhost:3000/users/1/' access_token '/' refresh_token)
else:
return HttpResponse(access_token)
Очевидно, что идентификатор пользователя не всегда будет «1», поэтому я хочу иметь возможность откуда-то получить этот идентификатор, и после некоторого поиска я увидел, что я могу получить эту информацию из self.request.user
, за исключением того, что я не могу. Это анонимно. Почему это так? Я использую Django Knox для аутентификации и, кстати, встроенную в пользовательскую модель Django. Есть ли другой способ получить этот идентификатор?
Комментарии:
1. Что есть
SESSION_COOKIE_SAMESITE
в ваших настройках? Если вы установите для него значениеstrict
, то файл cookie не будет отправляться при перенаправлении пользователя с Spotify обратно на ваш сайт.2. У меня это не было установлено, но я все еще получаю анонимность после установки значения «нет» и False