Обработка redirect_uri при oAuth2 для извлечения кода для авторизации в django

Подскажите, пожалуйста, как мне связать выданный мне redirect_uri вида ru.pix.card://oauth2-redirect, чтобы я мог обработать его сразу после того как пользователь авторизуется? Сейчас я получаю в браузере после ввода username и password на странице авторизации всплывающее окно "Открыть в xdg-open", при этом в консоли браузера я вижу передаваемый код по адресу вида ru.pix.card://oauth2-redirect?code=XXXX&state=XXX. Я при этом остаюсь на той же странице авторизации, а не переадресовываюсь в Django обратно. Никак не могу добиться, чтобы этот URI обрабатывался автоматически.

Мой код в Django выглядит сейчас так: urls.py

app_name = 'main'

urlpatterns = [
    path('', start, name='start'),
    path('/oauth2-redirect', get_code_view, name='swager_auth'),
]

models.py

class Swager:
   baseurl = ...
   client_id = ...
   client_secret = ...
   authorization_URL = ...
   token_URL = ...
   redirect_uri = 'ru.pix.card://oauth2-redirect'
   scope = ...
   grant_type = 'accesscode'

   def send_auth(self):
        self.oauth = OAuth2Session(
            self.client_id,
            redirect_uri=self.redirect_uri,
            scope=self.scope
        )

        self.auth_url, self.state = self.oauth.authorization_url(
            self.authorization_URL
        )

   def get_token(self, code):
        token = self.oauth.fetch_token(
            self.token_URL,
            code=code,
            client_secret=self.client_secret
        )
        self.token_type = token.get('token_type')
        self.access_token = token.get('access_token')
        self.refresh_token = token.get('refresh_token')

views.py

SWAGER = Swager()

def start(request):
    SWAGER.send_auth()
    return redirect(SWAGER.auth_url)

def get_code_view(request):
    state = request.GET.get('state')
    code = request.GET.get('code')
    SWAGER.get_token(code=code)
    return render(request, 'mainapp/auth.html', content={'data': SWAGER.access_token})

редирект на url авторизации проходит успешно, но обратно не возвращается в другое представление, видимо я что-то важное пропустил, предполагаю что моя проблема в том, что я не знаю как я должен на стороне сервера работать с redirect_uri, сейчас тестовый стенд работает по адресу localhost:8080, находится в Docker контейнере за NGINX, который слушает порт 80


Ответы (0 шт):