JWT-App - Moodle

Hello developer team:

Description
I created the JWT app in zoom (zoom administrator, not conot owner) and installed the moodle plugin “zoom meeting” (v3.4) in moodle version 3.8.6.After entering the API-KEYS and API-Secret in the plugin “zoom meeting” I had a connection and could create and start the in moodle Zomm meetings.
After some time, probably after the JWT token expired the following message came up: “Connection status: Connection failed: Access token is expired.”
That’s why I regenerated the API Secret and before that set a longer custom “Expiration Time” under “View JWT Token” by default. After that API KEY as well as API Secret in moodle plugin “zoom meeting” renewed. But again the same error message.
After that I set up everything in another moodle instance and entered API-KEY and new API-Secret. Connection could be established. Everything worked in this other moodle instance as it should. However, it did not work in the previous moodle instance.

  • How can this be?

  • Is the old API secret still stored in Zoom somehow?

  • What can I do to make the JWT app work securely and permanently in all moodle instances?

Error
Error message: “Connection status: Connection failed: Access token is expired.” in moodle-plugin “zoom meeting” after renewal of the API secret.

Which App Type (OAuth / Chatbot / JWT / Webhook)?
JWT

Which Endpoint/s?
moodle (version 3.8.6) and moodle plugin “zoom meeting” (version v3.4, Moodle plugins directory: Zoom meeting: Versions)

How To Reproduce (If applicable)
Steps to reproduce the behavior:

  1. Creating the JWT app according to the zoom instructions (Creating the JWT app according to the zoom instructions)
  2. Installation of moodle plugin “zoom meeting”
  3. Installation of the moodle plugin "zoom meeting
  4. Enter API KEY and API Secret in moodle plugin “zoom meeting”.
  5. Message: “Connection status: Connection working.” Everything worked as it should.
  6. After some time, probably after the JWT token expired, the error message came: “Connection status: Connection failed: Access token is expired.”
  7. Creating a new expiration time.
  8. Regenerating the API secret
  9. Enter the new API secret in moodle plugin “zoom meeting”.
    10 Error message: Connection status: Connection failed: Access token is expired."

11.Installing the moodle plugin “Zoom meeting” (v3.4) into another moodle instance (version 3.8.6)
12. Enter API KEY and API Secret in moodle plugin “zoom meeting”.
13. Message: “Connection status: Connection working.” Everything worked as it should.

  1. The error message in the first moodle instance persists.

  2. Checking the moodle plugin “zoom meeting” version and the moodle version.

  3. Comparing database entries in moodle. API KEY and API Secret are up to date, otherwise no significant differences are visible.

Screenshots (If applicable)

Additional context

I would be very grateful for any further help regarding the solution of this problem.

Kind Regards
Michael Veit

Hey @michael.veit,

Thank you for reaching out to the Zoom Developer Forum. This sounds like it might be an issue with that plugin itself since you have to create another moodle instance for this to work as expected. The plugin may be caching the JWT token and using that regardless of if it’s replaced. Just to confirm, are you using this plugin? If so, you may want to look at their issues and create a new one for more information.

I hope that helps! Let me know if you have any questions.

Thanks,
Max

Hey Max,

thank you very much for the feedback. I also had the suspicion that a cache of the old API key and API secret could be cached, so I also tried the following already:

  • Deleting and reinstalling the “zoom meeting” plugin --> Always the same error message: “Connection status: Connection failed:Access token is expired.”

  • Clearing moodle’s shared cache both via the developer function and via FTP access and deleting the files. --> Error message remains.

  • Installation of the “zoom meeting” plugin into a moodle instance on an xampp server with the above API key and API secret connection could be established immediately --> Plugin works as it should.

  • Comparison of the database entries regarding the keyword “zoom” (xampp/all-inkl.com) --> new API-Key and API-Secret were stored correctly in the database. Otherwise no noticeable entries that could justify a non-functioning.

  • Installation of a completely new Moodle instance on the same shar hosting server same error message as above: “Connection status: connection failed:Access token is expired.”

  • Installation of the “zoom meeting” plugin into a completely new Moodle instance on a different share hosting server. The same API key and API secret were used --> connection could be established immediately.

  • What else could I do to solve this problem?

  • Are there any restrictions from zoom.us side?

  • Server time was checked: Matches. Does the display of the date or time matter?

  • Could there be any restrictions from the provider side? I have also checked with my provider, but have not received an answer yet.

I would be very grateful for a solution or further tips, especially because we hope that the integration will facilitate distance learning at our schools for special education.

Thank you very much already.

Kind Regards
Michael Veit

Hey @michael.veit,

I checked with an internal resource and they indicated that this could be related to the server time on the moodle server being out of sync. Please review the following forum post and let me know if it helps to resolve your issue:

Thanks,
Max

Hey Max,

Yes, it was the server time. I have contacted my provider again. After he synchronized the server time, the connection works fine.

Thank you very much for the support

Kind regards
Michael Veit

Hey @michael.veit,

I’m glad to hear that resolved your issues! If you encounter any further issues or questions, please don’t hesitate to reach out.

Thanks,
Max