Сессии Django и поток кода авторизации Microsoft OAuth 2.0: какой путь правильный?

В моем веб-приложении я собираю некоторые данные от пользователя и сохраняю их в request.session. Затем мне нужно получить токены доступа/обновления MS Graph. Поэтому я запрашиваю код авторизации. После этого мне нужно вернуться к первоначальным сессиям пользователя.

app_name = 'sua'
urlpatterns = [
    path('', WizardView.as_view(), name='main'),
    path('cauth', CloudAuthView.as_view(), name='cauth'),
]


class CloudAuthView(View):

    def get(self, request):
        auth_code = request.GET.get('code', '')
        if auth_code:
            session_key = request.GET.get('state', '')
            s = SessionStore(session_key=session_key)
            s['auth_code'] = auth_code
            print(f'auth_code: {request.session.session_key}; {request.META.get("HTTP_REFERER")}')
            return redirect(reverse('sua:cauth'))

        print(f'get: {request.session.session_key}; {request.META.get("HTTP_REFERER")}')

        auth_url = _get_auth_url(state=request.session.session_key)
        print(auth_url)
        return redirect(auth.get_auth_url(state=request.session.session_key))

Журналы:

Starting development server at http://127.0.0.1:43814/
Quit the server with CTRL-BREAK.
[15/Oct/2022 13:30:53] "GET / HTTP/1.1" 200 5528
[15/Oct/2022 13:30:59] "POST / HTTP/1.1" 302 0
get: es52sm9fxogmhwgja3nkgzel2g9declx; http://127.0.0.1:43814/
auth_url: https://login.microsoftonline.com/common/oauth2/v2.0/authorize?redirect_uri=http%3A%2F%2Flocalhost%3A43814%2Fcauth&scope=offline_access+User.Read+Files.Read+User.Read.All+User.ReadWrite.All+Directory.Read.All+Directory.ReadWrite.All+Files.ReadWrite.All+Sites.FullControl.All&response_type=code&state=es52sm9fxogmhwgja3nkgzel2g9declx&client_id=xxx
[15/Oct/2022 13:30:59] "GET /cauth HTTP/1.1" 302 0
auth_code: j92mb1ougcqjhvr50xsfufap1jayru5s; http://127.0.0.1:43814/
[15/Oct/2022 13:31:00] "GET /cauth?code=0.AUIAGvBhs...&state=es52sm9fxogmhwgja3nkgzel2g9declx&session_state=2794f2aa HTTP/1.1" 302 0
get: j92mb1ougcqjhvr50xsfufap1jayru5s; http://127.0.0.1:43814/
[15/Oct/2022 13:31:00] "GET /cauth HTTP/1.1" 302 0
[15/Oct/2022 13:31:00] "GET / HTTP/1.1" 200 5668
Вернуться на верх