Use of this sample app is subject to our Terms of Use.
This is a Node.js / Express server that generates a Video SDK JWT via an HTTP request for authorized use of the Zoom Video SDK.
If you would like to skip these steps and just deploy the finished code to a managed service, click the Deploy to Railway/Render/Heroku button. (You will still need to configure a few simple things, so skip to Deployment.)
Railway | Render | Heroku |
---|---|---|
Note: Both Railway and Render have free tiers, but Heroku requires a credit card to deploy.
In terminal, run the following command to clone the repository:
$ git clone https://github.com/zoom/videosdk-auth-endpoint-sample.git
-
In terminal,
cd
into the cloned repository:$ cd videosdk-auth-endpoint-sample
-
Then install the dependencies:
$ npm install
-
Rename
.env.example
to.env
, edit the file contents to include your Zoom Video SDK key and secret, save the file contents, and close the file: -
Start the server:
$ npm run start
Make a POST request to http://localhost:4000
(or your deployed url) with the following request body:
Property | Type | Required? | Validation Rule(s) |
---|---|---|---|
sessionName |
string |
Yes | - Required - Value length be fewer than 200 characters |
role |
number |
Yes | - Required - Must equal 0 or 1 |
expirationSeconds |
number |
No | - Must be between 1800 (30 minutes) and 172800 (48 hours) seconds |
userIdentity |
string |
No | - Must be fewer than 35 characters |
sessionKey |
string |
No | - Must be fewer than 36 characters |
geoRegions |
string |
No | - Must be a comma-separated string with valid Zoom geo regions |
cloudRecordingOption |
number |
No | - Must equal 0 or 1 |
cloudRecordingElection |
number |
No | - Must equal 0 or 1 |
telemetryTrackingId |
string |
No | N/A |
POST http://localhost:4000
Request Body:
{
"sessionName": "Cool Cars",
"role": 1,
"sessionKey": "session123",
"userIdentity": "user123"
}
If successful, the response body will be a JSON representation of your signature:
{
"signature": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBfa2V5IjoiVklERU9fU0RLX0tFWSIsImlhdCI6MTY0NjI0ODc5NiwiZXhwIjoxNjQ2MjU1OTk2LCJ0cGMiOiJDb29sIENhcnMiLCJ1c2VyX2lkZW50aXR5IjoidXNlcjEyMyIsInNlc3Npb25fa2V5Ijoic2Vzc2lvbjEyMyIsInJvbGVfdHlwZSI6MH0.Y6C65mZUxTZFeGiOI6oW5q2UkIXe3nLTK0MVNkfiJ9c"
}
In the Video SDK, pass in the signature
to the join()
function:
// Make http request to your auth endpoint to get the Video SDK JWT
// Video SDK - web - example:
client.join(
signature: signature,
topic: sessionName,
userName: userName,
password: sessionPasscode
)
-
After clicking the "Deploy to <Provider>" button, enter a name for your app (or leave it blank to have a name generated for you), and insert your Zoom Video SDK credentials:
ZOOM_VIDEO_SDK_KEY
(Your Zoom Video SDK Key, found on your Zoom Video SDK App's Credentials page)ZOOM_VIDEO_SDK_SECRET
(Your Zoom Video SDK Secret, found on your Zoom Video SDK App's Credentials page)
-
Then click "Deploy App".
-
Use your URL as your Video SDK Auth Endpoint.
Example:
https://abc123.provider.com/
$ curl <YOU_URL> -X POST -d '{ "sessionName": "Cool Cars", "role": "1", "sessionKey": "session123", "userIdentity": "user123"}' -H "Content-Type: application/json"
-
For Other Server Hosting information, see this tutorial.
-
Use your deployed URL as your Video SDK Auth Endpoint.
Example:
https://abc123.compute-1.amazonaws.com/
Now you can generate your Video SDK JWT.
If you're looking for help, try Developer Support or our Developer Forum. Priority support is also available with Premier Developer Support plans.