The JWT app type will be completely deprecated as of June 2023 (2024)

Problem/Motivation

JWT Deprecation - The JWT app type will be completely deprecated as of June 2023. New and current users will have 12 months to migrate their JWT based solutions to the server-to-server OAuth app type.

See https://marketplace.zoom.us/docs/guides/build/jwt-app/jwt-faq/

Currently this module relies on the JWT app type in Zoom. It looks like we'll need to migrate to the Create a Server-to-Server OAuth App

It probably makes sense to make this a 3.x version of this module since it will require users to at least reconfigure the module from at least an authentication standpoint. My hope is that there would be no change to other aspects of the module.

Roadmap for 3.0.x

  • Remove JWT Dependency
  • Add D10 Compatibility - Mostly complete. Ran through Drupalcheck and merged in automated fixes.
  • Add API Tools (apitools) to handle the config form & client.
  • Add support for Zoom's server to server Oauth
  • Update automated tests.
  • Add documentation for moving from 2.x to 3.x

Config Form Options Needed

These are options needed for Server to Server Oauth & Webhooks (aka Event Notifications).

  • Account ID
  • Client ID
  • Client secret
  • Event Secret Token

Comments

Comment #1

joelsteidl created an issue. See original summary.

The JWT app type will be completely deprecated as of June 2023 (1)

Comment #2

perfectcu.be CreditAttribution: perfectcu.be as a volunteer and commented

+1, Thanks!

The JWT app type will be completely deprecated as of June 2023 (2)

Comment #3

joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented

We've started a 3.0.x branch for this and hope to have a dev version up by the end of year.

The JWT app type will be completely deprecated as of June 2023 (3)

Comment #4

joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented

Issue summary: View changes

The JWT app type will be completely deprecated as of June 2023 (5)

Comment #6

joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented

Issue summary: View changes

The JWT app type will be completely deprecated as of June 2023 (6)

Comment #7

pixiekat

she/her

CreditAttribution: pixiekat commented

Following; thanks - came here hoping there was already a roadmap as I require this for my project too!

The JWT app type will be completely deprecated as of June 2023 (7)

Comment #8

joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented

We are still working on 3.x, but I went ahead and released a 2.1.0 version that supports Drupal 10.

The JWT app type will be completely deprecated as of June 2023 (8)

Comment #9

joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented

This is a proof of concept (super rough) of how the client will need to be refactored.

https://gist.github.com/joelsteidl/fad398aab245b828a13a218e9640ad0a

Each request will need to include an access token as the Authorization header.

The JWT app type will be completely deprecated as of June 2023 (9)

Comment #10

joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented

We are targeting the end of March 2023 for this to be available.

The JWT app type will be completely deprecated as of June 2023 (10)

Comment #11

joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented

Issue summary: View changes

The JWT app type will be completely deprecated as of June 2023 (11)

Comment #12

joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented

The 3.x version is just about ready for testing. https://git.drupalcode.org/project/zoomapi/-/tree/3.0.x

I will be working on documentation for converting from 2.x to 3.x.

Zoom has also made a lot of changes with Webhook validation that will become default in October 2023, so a lot of that is part of 3.x as well.

The JWT app type will be completely deprecated as of June 2023 (12)

Comment #13

joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented

We have a dev release up for 3.x!

composer require 'drupal/zoomapi:3.0.x-dev@dev'

Please take a look at the 2.x to 3.x documentation and let us know if you have any immediate questions.

We'll continue to work towards a stable release closer to June.

The JWT app type will be completely deprecated as of June 2023 (13)

Comment #14

joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented

Issue summary: View changes
Status: Active » Needs review

The JWT app type will be completely deprecated as of June 2023 (14)

Comment #15

pixiekat

she/her

CreditAttribution: pixiekat commented

Thanks for all the work. For the record are post and deletes the same as post in such that it requires the json key in the options array?

The JWT app type will be completely deprecated as of June 2023 (15)

Comment #16

joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented

That should be the case. Guzzle will automatically format the JSON.

Let me know if that isn't the case.

The JWT app type will be completely deprecated as of June 2023 (16)

Comment #17

pixiekat

she/her

CreditAttribution: pixiekat commented

Doing some testing and that is the case, thanks! :)

The JWT app type will be completely deprecated as of June 2023 (17)

Comment #18

joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented

@pixiekat Thanks so much for testing things out. I'm curious if you've had any issues so far.

The JWT app type will be completely deprecated as of June 2023 (18)

Comment #19

pixiekat

she/her

CreditAttribution: pixiekat commented

I did discover one issue, actually. I was trying to put to the Update meeting status endpoint using the put() method and I received an 400 response: Request Body should be a valid JSON

I'm passing the meeting ID as the path and ['action' => 'end'] as the $option. I can't figure out why it's happening when it was working previously.

I don't think I'm missing a scope as I already have view and manage all user recordings active.

The JWT app type will be completely deprecated as of June 2023 (19)

Comment #20

pixiekat

she/her

CreditAttribution: pixiekat commented

Oh, got it. It was a Guzzle configuration. For put() requests in Guzzle 6, you need to send ['json' => $data] as your $option. For form data, you would send ['form_params' => $data].

Might be helpful to include in the documentation (not meaning that as a demand or to be rude or anything; I just think other people might be interested so they don't have to hunt). :)

The JWT app type will be completely deprecated as of June 2023 (2024)

FAQs

Is JWT being deprecated? ›

Q: When will the JWT deprecation start? A: Zoom will disable the ability to create new JWT apps on June 1, 2023. The projected end-of-life for JWT apps will be September 1, 2023. New and current users have until September 1 to migrate their JWT-based solutions to the new server-to-server OAuth or OAuth app types.

What is JWT app in zoom? ›

All apps created for third-party usage must use our OAuth app type. A JWT app is a type of server-to-server authenticated app, which allows users as well as other apps to consume its services.

What is the replacement of JWT? ›

OAuth2, Passport, Spring Security, Auth0, and Keycloak are the most popular alternatives and competitors to JSON Web Token.

Is JWT still used? ›

You can definitely use JWT tokens securely, however, you should probably not implement them from scratch since it can become complicated to secure them extensively without going down a rabbit hole.

How do I remove JWT app from Zoom? ›

Only one JWT app can be created per master Zoom account, hence cannot be deleted and recreated.

Is it necessary to use JWT? ›

JWT can be used as an access token to prevent unwanted access to a protected resource. They're often used as Bearer tokens, which the API will decode and validate before sending a response.

Is JWT safe for authentication? ›

Information exchange: JWTs are a good way of securely transmitting information between parties because they can be signed, which means you can be certain that the senders are who they say they are. Additionally, the structure of a JWT allows you to verify that the content hasn't been tampered with.

How long will JWT last? ›

The JWT access token is only valid for a finite period of time. Using an expired JWT will cause operations to fail. As you saw above, we are told how long a token is valid through expires_in . This value is normally 1200 seconds or 20 minutes.

What is more secure than JWT? ›

Secure: Opaque tokens do not contain any user information, making them more secure than JWT tokens. Flexible: Opaque tokens can be customized to store additional user information in the authorization server, which can be retrieved by the resource server when needed.

What is the difference between JWT and token? ›

The main difference between JWTs and opaque tokens is that an unencrypted JWT can be interpreted by anybody that holds the token, whereas opaque tokens cannot. An unencrypted JWT consists of three parts: a header, a payload, and a signature.

Why JWTs are bad for authentication? ›

The biggest problem with JWTs is that the token will continue to work until it expires, and the server has no easy way to revoke it. This could be extremely dangerous in situations such as the following: Logout doesn't actually log you out of the system.

Does Google use JWT? ›

With some Google APIs, you can make authorized API calls using a signed JWT instead of using OAuth 2.0, which can save you a network request.

Does Amazon use JWT? ›

After a user logs in, an Amazon Cognito user pool returns a JWT. The JWT is a base64url-encoded JSON string ("claims") that contains information about the user. Amazon Cognito returns three tokens: the ID token, the access token, and the refresh token.

How do I disable JWT? ›

You should store the refresh tokens that you've given out in a table and when the user logs out, flag the token as revoked and then when you give a new access token out, verify that the refresh token hasn't been revoked.

How do I clear my JWT token from my browser? ›

simply follow these 4 bullet points:
  1. Set a reasonable expiration time on tokens.
  2. Delete the stored token from client-side upon log out.
  3. Have DB of no longer active tokens that still have some time to live.
  4. Query provided token against The Blacklist on every authorized request.
Apr 24, 2020

Can we revoke JWT? ›

JWT tokens cannot be revoked easily unless you check the token against an online database. However, one option that you can use with JWT is instead of storing active tokens in the database, the database can store revoked token instead.

Is JWT only for authentication? ›

Both API key and JWT are used for authentication and authorization, but they do it differently. Authentication allows the user or application to use one or more methods of the API. Authorization defines how they can use those methods.

Is JWT permanent? ›

The signed JWT acts effectively as a temporary user credential, that replaces the permanent credential wich is the username and password combination.

Is it safe to store email in JWT? ›

Yes, it is bad practice and a security problem.

Email addresses are PII (personally identifiable information). Like all other PII, email addresses should never be stored unencrypted at rest; doing so is inherently insecure.

Is JWT bad for authentication? ›

Read more to know how you can use JWT and learn the necessary best practices. One of the most used authentication standards in web applications is the JSON Web Token standard. It is mostly used for authentication, authorization, and information exchange. JSON Web tokens are made of three parts separated by dots (.)

What is the problem with JWT? ›

Security is binary—it is either secure or not. As a result, using JWT for user sessions is dangerous. The biggest problem with JWTs is that the token will continue to work until it expires, and the server has no easy way to revoke it.

Is there better security than JWT? ›

Secure: Opaque tokens do not contain any user information, making them more secure than JWT tokens. Flexible: Opaque tokens can be customized to store additional user information in the authorization server, which can be retrieved by the resource server when needed.

Should I use JWT for login? ›

JWT is used for AUTHORIZATION, not AUTHENTICATION. In authentication, we take in a username and password and make sure it's correct (logging in). In authorization, we make sure the user who is sending requests to your server is the same user who logged in during authentication.

Can someone steal my JWT token? ›

JWT tokens provide secure access to an authenticated user, and attackers are always looking for ways to steal these tokens and quickly gain access by impersonating a consumer.

Why does JWT expire? ›

Why is JWT token expiration important? A JWT token that never expires is dangerous if the token is stolen then someone can always access the user's data. Quoted from JWT RFC (RFC 7519): The “exp” (expiration time) claim identifies the expiration time on or after which the JWT MUST NOT be accepted for processing.

What causes JWT to expire? ›

jwt-expiration.md

Expiration only happens for web apps, not for native mobile apps, because native apps never expire. Revoking only happens when (1) uses click the logout button on the website or native Apps;(2) users reset their passwords; (3) users revoke their tokens explicitly in the administration panel.

What is the new JWT vulnerability? ›

JsonWebToken is an open-source project that aims to create web tokens. The vulnerability, tracked as CVE-2022-23529, allows attackers to bypass the verification of JWT tokens, potentially leading to remote code execution (RCE) on a server.

What is safer than JWT? ›

PASETO is more secure than JWT and offers a simpler implementation. As a result, many developer communities started accepting it as a better alternative to JWT. Now that you too know the advantages of using PASETO over JWT, what are you going to use for your next project ?

Can you trust a JWT? ›

Don't Trust All the Claims

Claims in a JWT represent pieces of information asserted by the authorization server. The token is usually signed, so its recipient can verify the signature and thus trust the values of the payload's claims. You should be wary, however, when dealing with some claims in the token's header.

Why is JWT better than API key? ›

The main difference between API Key auth and JWT token auth is that the JWT Token is self-contained - the information asserted by the token is in the token. Whereas with an API Key the asserted information is stored in an external system.

Top Articles
110 Years of the Australian Penny
Full list of items Brits are being urged to stockpile in case of national emergency
Hotels Near 6491 Peachtree Industrial Blvd
Aberration Surface Entrances
Danielle Moodie-Mills Net Worth
News - Rachel Stevens at RachelStevens.com
Midflorida Overnight Payoff Address
Explore Tarot: Your Ultimate Tarot Cheat Sheet for Beginners
Guardians Of The Galaxy Showtimes Near Athol Cinemas 8
Stl Craiglist
The Idol - watch tv show streaming online
Nyuonsite
Graveguard Set Bloodborne
Craigslist Estate Sales Tucson
Paychex Pricing And Fees (2024 Guide)
Vintage Stock Edmond Ok
Costco Great Oaks Gas Price
Amih Stocktwits
Marion City Wide Garage Sale 2023
All Obituaries | Gateway-Forest Lawn Funeral Home | Lake City FL funeral home and cremation Lake City FL funeral home and cremation
Random Bibleizer
Arlington Museum of Art to show shining, shimmering, splendid costumes from Disney Archives
Miles City Montana Craigslist
Cowboy Pozisyon
24 Hour Drive Thru Car Wash Near Me
Amazing Lash Bay Colony
Ezstub Cross Country
Shauna's Art Studio Laurel Mississippi
APUSH Unit 6 Practice DBQ Prompt Answers & Feedback | AP US History Class Notes | Fiveable
R/Sandiego
Nail Salon Open On Monday Near Me
Sports Clips Flowood Ms
Glossytightsglamour
Federal Student Aid
آدرس جدید بند موویز
Polk County Released Inmates
42 Manufacturing jobs in Grayling
In Polen und Tschechien droht Hochwasser - Brandenburg beobachtet Lage
Raising Canes Franchise Cost
Craiglist Hollywood
Timberwolves Point Guard History
Infinite Campus Farmingdale
How to Get a Better Signal on Your iPhone or Android Smartphone
Luciane Buchanan Bio, Wiki, Age, Husband, Net Worth, Actress
Panolian Batesville Ms Obituaries 2022
Brauche Hilfe bei AzBilliards - Billard-Aktuell.de
Wgu Admissions Login
Is Chanel West Coast Pregnant Due Date
Blippi Park Carlsbad
Jeep Forum Cj
Costco Tire Promo Code Michelin 2022
Latest Posts
Article information

Author: Fredrick Kertzmann

Last Updated:

Views: 6513

Rating: 4.6 / 5 (66 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Fredrick Kertzmann

Birthday: 2000-04-29

Address: Apt. 203 613 Huels Gateway, Ralphtown, LA 40204

Phone: +2135150832870

Job: Regional Design Producer

Hobby: Nordic skating, Lacemaking, Mountain biking, Rowing, Gardening, Water sports, role-playing games

Introduction: My name is Fredrick Kertzmann, I am a gleaming, encouraging, inexpensive, thankful, tender, quaint, precious person who loves writing and wants to share my knowledge and understanding with you.