import logging from django.shortcuts import redirect from django.conf import settings from keycloak import KeycloakOpenID from urllib.parse import urlencode from django.contrib.auth import logout logger = logging.getLogger(__name__) def keycloak_login(request): keycloak_openid = KeycloakOpenID( server_url=settings.KEYCLOAK_CONFIG['SERVER_URL'], client_id=settings.KEYCLOAK_CONFIG['CLIENT_ID'], realm_name=settings.KEYCLOAK_CONFIG['REALM'], client_secret_key=settings.KEYCLOAK_CONFIG['CLIENT_SECRET'] ) redirect_uri = settings.KEYCLOAK_CONFIG['CALLBACK_URL'] auth_url = keycloak_openid.auth_url(redirect_uri=redirect_uri) logger.info('Запрос успешно обработан') return redirect(auth_url) from django.http import HttpResponse from django.views.decorators.http import require_http_methods import logging @require_http_methods(["GET"]) def keycloak_redirect(request): # Extract the authorization code from the query parameters authorization_code = request.GET.get('code') if authorization_code: # Proceed with the token exchange process here print(authorization_code) logger.info(' 2 Запрос успешно обработан') return HttpResponse("Authorization code received.") else: return HttpResponse("Authorization code not found.", status=400)