Django - Перенаправление на страницу Strava API Auth не работает

Я пытаюсь перенаправить мое веб-приложение django после того, как пользователь отправил форму, и если пользователь выбрал опцию 'Strava Link' из формы.

В настоящее время я делаю следующее: открываю страницу авторизации API Strava для обмена кодами/токенами, чтобы мое приложение получало данные из аккаунта пользователя Strava.

Моя текущая проблема заключается в том, что он не перенаправляет на страницу авторизации Strava API (нет ошибки, ничего), и я попытался распечатать URL авторизации, чтобы я мог отладить его. Я попробовал вручную открыть URL-адрес авторизации, и он работает

Я просмотрел несколько руководств по API Strava с использованием python, и все они вручную вводят ссылку для копирования кода после того, как пользователь нажимает кнопку "Авторизован".

Правильный ли мой метод?

Отправка формы -> Перенаправление пользователя на страницу авторизации API Strava Страница (застрял на этом шаге) -> Обратный вызов для возврата кода/токена -> Получение данных

Вот мой текущий код innside views.py:

async def index(request):
    if request.method == 'POST': #Start of process after Form Submitted
        try:
            data_dict = link_validation(request, data_dict) 
            #Rest of the code Here (Irrelevant and not related to Strava API)
        except Exception as e:
            return render(request, 'index.html', {'error_message': str(e)})
    else:
        return render(request, 'index.html')
        

def link_validation(request, data_dict):
    redirect_to_strava_auth(request)
    #Rest of the code logic here to be put when Strava API Authorization is solved

def redirect_to_strava_auth(request):
    auth_url = f"https://www.strava.com/oauth/authorize?client_id={STRAVA_CLIENT_ID}&response_type=code&redirect_uri={REDIRECT_URI}&approval_prompt=force&scope=read,profile:read_all,activity:read"
    print("Redirect URL:", auth_url) #Prints a valid link and I tried opening it in browser manually, it works
    return redirect(auth_url) #This is the problem I can't solve (Not producing any error, just no redirection) 
    
#This function will be executed right after the user clicked the 'Authorize' on my Strava API
def exchange_code_for_token(request):
    code = request.GET.get('code')
    
    token_url = "https://www.strava.com/oauth/token"
    payload = {
        'client_id': STRAVA_CLIENT_ID,
        'client_secret': STRAVA_CLIENT_SECRET,
        'code': code,
        'grant_type': 'authorization_code'
    }
    response = requests.post(token_url, data=payload)
    if response.status_code == 200:
        access_token = response.json()['access_token']
        # Save access_token to the user session or database
        return HttpResponseRedirect('/index/')  # Redirect to success page or any other page
    else:
        return HttpResponse("Error exchanging code for access token")

Вот мои текущие настройки API Strava:

enter image description here

Вот текущее пошаговое демо моего текущего прогресса на видео youtube. (Не обращайте внимания на сообщение об ошибке, которое появилось в карточке, так как оно не связано с перенаправлением API).

YOUTUBE: django strava API redirection to auth page not working

Идея альтернативного решения (на случай, если мой метод не сработает) - Через JavaScript:

Условная проверка на javascript, если код авторизации уже существует -> Поместите Страница авторизации как <a href = ""> на форме -> Пользователь вручную нажимает ссылку -> Пользователь авторизуется в моем API -> Перенаправление обратно в мое приложение django вместе с Auth кодом/Token и хранит его в сессии -> Передаем код при отправке формы в views.py

Вернуться на верх