Upgrading SDK version and switching from JWT app to Server-To-Server OAuth

Hello everyone. My explanation might be a bit longer, but I need to describe two ‘problems’ simultaneously.

Currently, we use JWT app for authentication and ApiKey and ApiSecret for signature generation, which is used for joining webinars from the frontend application. Since JWT app will be deprecated from 1st June, we have decided to switch to S2S OAuth. In the same time, we would like to increase SDK version in our React app from 2.1.1 to the latest (2.11.5) version. The difference between these two versions is that apiKey property does not exist any more, but from version 2.7.0, sdkKey should be used.

Current state is that we have created S2S OAuth app, but there are no sdkKey, only Cliend ID and Client secret.
I went through this document: https://developers.zoom.us/docs/internal-apps/jwt-app-migration/#detailed-steps-to-complete-the-migration
but I’m a bit confused about what all should be done.

Questions:

  1. Can S2S OAuth app be used for generating signatures on the backend and providing sdkKey for the frontend application? Can Client ID be used for sdkKey?

  2. If the answer to the first question is ‘NO’, should we create Meeting SDK as well, in order to get sdkKey? Is there a need for S2S OAuth if we need only signature generation functionality?

Thank you in advance for help!

Hi @nikola.sajic ,

In newer versions of Meeting SDK, you will need to use SDK App Type instead of JWT App Type.

When creating an SDK App Type, you will be given Client ID and Client Secret, these are your SDK Key and SDK Key respectively.

You should not need to use S2S OAuth App at all, unless you are calling our Zoom REST API.

Hi @chunsiong.zoom ,

Thank you for the response.

Just to see if I understood correctly.
We had only JWT app type, and it was used for both, communicating with the Zoom REST API and generating signature for Web SDK. Do we have now to create Meeting SDK in order to create signature and join webinars from our Web app, and also to create S2S OAuth in order to communicate with the Zoom REST API? Can ClientID and Client secret from S2S OAuth be used for generating signature for Web app and joining webinars and to avoid creating of Meeting SDK?

I’m asking this because we want to avoid interfering user to do authentication, and with Meeting SDK we need to provide URL for redirection:

Is it possible to keep the same flow as it was with JWT App type?

Hi @nikola.sajic, I’m in same scenario where you are, difference is I’m having meeting and you are having webinars.

So, @chunsiong.zoom, Is it possible to keep the same flow as it was with JWT App type?
can we use same SDK Key & Secrete for meeting & API OR SDK is only for Web Meeting & OAuth for ZOOM Rest API (I’m using Get user, Get Meeting, Create Meeting, Create User etc.)

Hi @nikola.sajic

Question: Do we have now to create Meeting SDK in order to create signature and join webinars from our Web app, and also to create S2S OAuth in order to communicate with the Zoom REST API?
Answer: Yes

Question: Do we have now to create Meeting SDK in order to create signature and join webinars from our Web app, and also to create S2S OAuth in order to communicate with the Zoom REST API?
Answer: No, it will not work. You need to create a Meeting SDK App Type.

Depending on the situation, you can choose not to do OAuth using the credentials from Meeting SDK.

Question: Is it possible to keep the same flow as it was with JWT App type?
Answer: Depends on what you are doing, if you can share more details, I can advise you on it.

@vishwajeetbhosale

Question: Is it possible to keep the same flow as it was with JWT App type?
Answer: Could you elaborate on what is the “flow” you want to keep?

Question: Can we use same SDK Key & Secrete for meeting & API OR SDK is only for Web Meeting & OAuth for ZOOM Rest API (I’m using Get user, Get Meeting, Create Meeting, Create User etc.)

Answer: If you are using a recently created Meeting SDK App Type, you will have Client ID and Client Secret as your credentials. This can be used for Meeting SDK and OAuth access to Zoom REST API.

But do note, the reverse is not true. Server to Server OAuth Crendentials cannot be used for Meeting SDK

@chunsiong.zoom, I’m calling Get user, Get Meeting, Create Meeting, Create User, Update meeting API so do I need to use OAuth or Server-2-Server OAuth app type?

Hi @chunsiong.zoom

In which cases I can choose not to do OAuth using credentials from Meeting SDK?

As you can see from the screenshot below, I cannot activate my Meeting SDK app because I did not add Redirect URL for OAuth.

How can I avoid this? What I want to achieve is to click join button on my web application and to perform join webinar method from zoom web sdk. In order to call join method from zoom web sdk, I need to provide sdkKey and signature. So I need ClientID and Client secret from Meeting SDK app in order to create signature and to call join method. How can I avoid redirection URL for OAuth because I do not want to do manual authentication?

@nikola.sajic ,

You should be able to use your app credentials now to join meeting.

You can ignore the redirect URL for OAuth and OAuth Allow List

I’m calling Get user, Get Meeting, Create Meeting, Create User, Update meeting API so do I need to use OAuth or Server-2-Server OAuth app type?

It sounds like you are intending to do actions which are account level wide.
If that is the case, you should be using Server to Server OAuth App Type

@chunsiong.zoom ,

So you say that I can leave these two fields empty?

Can I ignore “Your app is not ready for users to add due to missing the following information” sentence?

If you are not intending to publish your SDK app, and you have no intention to access the user’s data using the OAuth REST API, then yes you can leave the 2 fields empty.

@chunsiong.zoom user’s data means?

@vishwajeetbhosale
Data which can be retrieved from these REST endpoints

https://developers.zoom.us/docs/integrations/oauth/#the-me-context

@nikola.sajic / @chunsiong.zoom, can you please share me the code to generate signature for meeting / initiate the meeting.
C#/Angular code will help or what you have and working.

@vishwajeetbhosale
https://developers.zoom.us/docs/meeting-sdk/auth/

You can find a code for token/signature creation on the github below:

That token should be used on the frontend side same as JWT App’s token was used, so the implementation on the frontend should not be changed, just use the sdkKey value from the Meeting SDK app and signature generated with the code from mentioned github repo.

@chunsiong.zoom thank you for your help! We have managed to switch on S2S OAuth.

1 Like

@nikola.sajic , you mentioned like We have managed to switch on S2S OAuth, so you don’t need SDK APP any more? even for meeting init by host/ join by user.

@vishwajeetbhosale, we are using only webinars, not meetings for now, but I believe it is the same thing. You need to create Meeting SDK (see attached image)
image

After you create that, you will get Client ID and Client Secret. These values are used for creating signature (which is further used by frontend app in order to join the meeting/webinar).

On the other hand, if you need to communicate with Zoom API from your backend service (for example creating webinars by communicating backend service with Zoom API), you need to create S2S OAuth as well.

So you need to separate these two things:

  1. S2S OAuth should be used for communication in direction: your backend service → Zoom API (for instance creating meetings and webinars)
  2. Meeting SDK should be used for joining meetings/webinars from the fronted app by calling ZoomMtg.join() method.

So basically, long story short, if you had with JWT app communication with the Zoom API and also used ZoomMtg.join for joining meetings from the frontend app, you will need created both, S2S OAuth and Meeting SDK.

@nikola.sajic , Thank your help, but still I’m struggling,
I have done same thing, I’m having Frontend application in Angular & Backend in .Net Core and now using Meeting SDK APP to start the meeting and Join the meeting and S2S app to generate token and call REST API.
As you suggested and share the code I’m passing Meeting SDK APP Key (now it is Client Id) & Secret (now it is Client secret) to CreateClientSDKToken in C# method & same Meeting SDK APP Key (now it is Client Id) passed in ZoomMtg.join() in sdkKey (See below image)
image

, but I’m getting below error.