diff --git a/pdf_renamer.py b/pdf_renamer.py index 48017a2..cf5a307 100644 --- a/pdf_renamer.py +++ b/pdf_renamer.py @@ -731,15 +731,33 @@ def auth(): print("DEBUG: Starting OAuth callback processing") token = microsoft.authorize_access_token() print(f"DEBUG: Got token: {token}") - user = microsoft.parse_id_token(token) - print(f"DEBUG: Parsed user: {user}") - session['user'] = user + + # Get user info from the token's userinfo (already parsed by Authlib) + user_info = token.get('userinfo') + + if not user_info: + print("ERROR: No userinfo in token") + flash('Failed to get user information from Microsoft.', 'error') + return redirect(url_for('login')) + + print(f"DEBUG: Parsed user info: {user_info}") + + # Store user information in session + session['user'] = { + 'name': user_info.get('name', 'Unknown'), + 'email': user_info.get('email') or user_info.get('preferred_username', 'unknown@example.com'), + 'oid': user_info.get('oid'), + } + session.permanent = True + + print(f"DEBUG: User logged in successfully: {session['user']}") return redirect(url_for('upload_files')) + except Exception as e: print(f"OAuth error: {e}") # Log the error for debugging import traceback print(f"Full traceback: {traceback.format_exc()}") - flash('Authentication failed. Please check your Microsoft Entra ID configuration.', 'error') + flash('Authentication failed. Please try again.', 'error') return redirect(url_for('login')) @app.route('/logout')