mirror of
https://github.com/mediacms-io/mediacms.git
synced 2026-01-20 07:12:58 -05:00
wtv
This commit is contained in:
22
lti/views.py
22
lti/views.py
@@ -94,10 +94,20 @@ class OIDCLoginView(View):
|
|||||||
return JsonResponse({'error': 'Missing required OIDC parameters'}, status=400)
|
return JsonResponse({'error': 'Missing required OIDC parameters'}, status=400)
|
||||||
|
|
||||||
# Get platform configuration
|
# Get platform configuration
|
||||||
platform = get_object_or_404(LTIPlatform, platform_id=iss, client_id=client_id)
|
print(f"Looking for platform with iss={iss}, client_id={client_id}")
|
||||||
|
try:
|
||||||
|
platform = LTIPlatform.objects.get(platform_id=iss, client_id=client_id)
|
||||||
|
print(f"Platform found: {platform.name}")
|
||||||
|
except LTIPlatform.DoesNotExist:
|
||||||
|
print(f"ERROR: No platform found with iss={iss}, client_id={client_id}")
|
||||||
|
print("Available platforms:")
|
||||||
|
for p in LTIPlatform.objects.all():
|
||||||
|
print(f" - {p.name}: platform_id={p.platform_id}, client_id={p.client_id}")
|
||||||
|
return JsonResponse({'error': 'Platform not found'}, status=404)
|
||||||
|
|
||||||
# Create tool config for this platform
|
# Create tool config for this platform
|
||||||
tool_config = DjangoToolConfig.from_platform(platform)
|
tool_config = DjangoToolConfig.from_platform(platform)
|
||||||
|
print("Tool config created")
|
||||||
|
|
||||||
# Wrap Django request for PyLTI1p3
|
# Wrap Django request for PyLTI1p3
|
||||||
lti_request = DjangoRequest(request)
|
lti_request = DjangoRequest(request)
|
||||||
@@ -168,17 +178,27 @@ class LaunchView(View):
|
|||||||
claims = {}
|
claims = {}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
print("=" * 80)
|
||||||
|
print("LTI LAUNCH INITIATED")
|
||||||
|
print("=" * 80)
|
||||||
|
|
||||||
# Get issuer from request
|
# Get issuer from request
|
||||||
id_token = request.POST.get('id_token')
|
id_token = request.POST.get('id_token')
|
||||||
if not id_token:
|
if not id_token:
|
||||||
|
print("ERROR: Missing id_token in launch request")
|
||||||
raise ValueError("Missing id_token in launch request")
|
raise ValueError("Missing id_token in launch request")
|
||||||
|
|
||||||
|
print(f"Received id_token (first 50 chars): {id_token[:50]}...")
|
||||||
|
|
||||||
# Decode JWT to get issuer (without validation first)
|
# Decode JWT to get issuer (without validation first)
|
||||||
|
|
||||||
unverified = jwt.decode(id_token, options={"verify_signature": False})
|
unverified = jwt.decode(id_token, options={"verify_signature": False})
|
||||||
iss = unverified.get('iss')
|
iss = unverified.get('iss')
|
||||||
aud = unverified.get('aud')
|
aud = unverified.get('aud')
|
||||||
|
|
||||||
|
print(f"Decoded JWT - Issuer (iss): {iss}")
|
||||||
|
print(f"Decoded JWT - Audience (aud): {aud}")
|
||||||
|
|
||||||
# Get platform
|
# Get platform
|
||||||
platform = get_object_or_404(LTIPlatform, platform_id=iss, client_id=aud)
|
platform = get_object_or_404(LTIPlatform, platform_id=iss, client_id=aud)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user