Skip to content

Conversation

@Cup0fCoffee
Copy link
Contributor

@Cup0fCoffee Cup0fCoffee commented Jul 21, 2025

Description

Current Third Party Authentication logout requires a redirect from the SSO IDP to the LMS to handle IDAs logout, i.e. we need to visit the <LMS>/logout twice. This PR attempts to handle the TPA logout with only one visit to <LMS>/logout.

Testing instructions

  1. Add TPA_AUTOMATIC_LOGOUT_ENABLED = True to edx-platform/lms/envs/devstack.py
  2. Replace self.tpa_logout_url = tpa_pipeline.get_idp_logout_url_from_running_pipeline(request) in edx-platform/openedx/core/djangoapps/user_authn/views/logout.py with self.tpa_logout_url = "https://example.com/logout" (to simplify testing)
  3. Launch LMS and Studio e.g. make dev.up.lms+cms
  4. Check the network tab and ensure that the user is logged out from both the LMS and Studio before being redirected to https://example.com/logout (fake IDP logout URL)

Supporting information

Private ref BB-8759

Deadline

"None" if there's no rush, or provide a specific date or event (and reason) if there is one.

@Cup0fCoffee Cup0fCoffee requested a review from a team as a code owner July 21, 2025 16:25
@openedx-webhooks openedx-webhooks added the open-source-contribution PR author is not from Axim or 2U label Jul 21, 2025
@openedx-webhooks
Copy link

Thanks for the pull request, @Cup0fCoffee!

This repository is currently maintained by @openedx/wg-maintenance-edx-platform.

Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review.

🔘 Get product approval

If you haven't already, check this list to see if your contribution needs to go through the product review process.

  • If it does, you'll need to submit a product proposal for your contribution, and have it reviewed by the Product Working Group.
    • This process (including the steps you'll need to take) is documented here.
  • If it doesn't, simply proceed with the next step.
🔘 Provide context

To help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:

  • Dependencies

    This PR must be merged before / after / at the same time as ...

  • Blockers

    This PR is waiting for OEP-1234 to be accepted.

  • Timeline information

    This PR must be merged by XX date because ...

  • Partner information

    This is for a course on edx.org.

  • Supporting documentation
  • Relevant Open edX discussion forum threads
🔘 Get a green build

If one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green.

Details
Where can I find more information?

If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources:

When can I expect my changes to be merged?

Our goal is to get community contributions seen and reviewed as efficiently as possible.

However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:

  • The size and impact of the changes that it introduces
  • The need for product review
  • Maintenance status of the parent repository

💡 As a result it may take up to several weeks or months to complete a review and merge your PR.

@Cup0fCoffee
Copy link
Contributor Author

@sarina pinging you here re this comment. The new PR is up to date and passing all the tests.

@Cup0fCoffee Cup0fCoffee force-pushed the maxim/bb-8759-tpa-logout branch from 3b28e13 to 7bf8c30 Compare July 21, 2025 17:43
@sarina
Copy link
Contributor

sarina commented Jul 22, 2025

Hi @Cup0fCoffee I was only commenting on the previous PR because it was one of our top 10 oldest. I don't have any context here and as I mentioned in the previous PR, I don't know who does. Do you think you can find a reviewer?

@Cup0fCoffee
Copy link
Contributor Author

@sarina Ok, I'll see if we can get a Core Contributor for our team assigned to this.

@mphilbrick211 mphilbrick211 added the needs reviewer assigned PR needs to be (re-)assigned a new reviewer label Jul 28, 2025
@mphilbrick211 mphilbrick211 moved this from Needs Triage to Ready for Review in Contributions Jul 28, 2025
@Agrendalath Agrendalath force-pushed the maxim/bb-8759-tpa-logout branch from 7bf8c30 to 99f99fb Compare August 15, 2025 14:58
@Agrendalath Agrendalath requested a review from a team as a code owner August 15, 2025 14:58
@Agrendalath
Copy link
Member

@Cup0fCoffee, I'm trying to test this in the local Tutor environment, but I am not getting redirected anywhere from the logout page (http://local.openedx.io:8000/logout). Instead, I'm seeing the following error in the console:

Uncaught TypeError: this.unbind is not a function
    jQuery 13
    <anonymous> http://local.openedx.io:8000/static/js/logout.js:19
    jQuery 8

It comes from this line. I tried running tutor dev exec lms npm run build-dev, but it did not fix the issue. I'm getting a correct redirect on the master branch.

@Cup0fCoffee
Copy link
Contributor Author

@Agrendalath Yep, I'm getting the same error. However, I was able to figure it out. This issue is not caused by the changes (master fails for me the same as the branch from this PR, if you keep the self.tpa_logout_url = "https://example.com/logout"), but due to the logic of the logout script and the local setup. Basically, to make it work locally, you need to remove the services that are not setup on local environment by commenting out the items in the IDA_LOGOUT_URI_LIST located in lms/envs/devstack.py.

@Cup0fCoffee Cup0fCoffee force-pushed the maxim/bb-8759-tpa-logout branch from 99f99fb to a843cb0 Compare August 27, 2025 19:09
Copy link
Member

@Agrendalath Agrendalath left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

  • I tested this: checked that the user is correctly redirected to the logout_url from Other/Advanced TPA settings
  • I read through the code
  • I checked for accessibility issues: n/a
  • Includes documentation: n/a

@Agrendalath Agrendalath merged commit 9c90fa0 into openedx:master Sep 1, 2025
49 checks passed
@Agrendalath Agrendalath deleted the maxim/bb-8759-tpa-logout branch September 1, 2025 11:23
@github-project-automation github-project-automation bot moved this from Ready for Review to Done in Contributions Sep 1, 2025
@openedx-webhooks openedx-webhooks removed the needs reviewer assigned PR needs to be (re-)assigned a new reviewer label Sep 1, 2025
@edx-pipeline-bot
Copy link
Contributor

2U Release Notice: This PR has been deployed to the edX staging environment in preparation for a release to production.

@edx-pipeline-bot
Copy link
Contributor

2U Release Notice: This PR has been deployed to the edX production environment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

open-source-contribution PR author is not from Axim or 2U

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

7 participants