Skip to main content
Version: 0.3.x

Authentication and Token

VideoSDK uses access tokens for authentication. Using our dashboard (app.videosdk.live), anyone can generate access tokens tokens with an API key and secret pair.

  • Your backend server will generate access tokens using API Key and secret.
  • Your client obtains token from your backend server.
  • Your client will pass the token to VideoSDK server.
  • VideoSDK client sdk will conncts to the VideoSDK server with available token.
  • VideoSDK server will validate the token and accpets your incoming connection.

Here is the simple sequence diagram represents the authentication.

sequenceDiagram Your App Client->>Your App Server: Request for token; activate Your App Server; Note left of Your App Server: Generate token; Your App Server-->>Your App Client: Received token; deactivate Your App Server; Your App Client->>VideoSDK Server: Request to establish connection; activate VideoSDK Server; Note left of VideoSDK Server: Validates Token; VideoSDK Server-->>Your App Client: Connection established; deactivate VideoSDK Server;

Generate API Key and Secret

Visit, app.videosdk.live to gererate API Key and secret.

Generate API Key from Dashboard

Generate Access Token

For security, every participant that connects to meeting needs a access token. By substituting apikey and permissions in it.

var jwt = require("jsonwebtoken");
var uuid4 = require("uuid4");

// Need to generate from app.videosdk.live
const API_KEY = "API_KEY_GENERATED";
const SECRET_KEY = "API_SECRET_KEY_GENERATED";

jwt.sign(
{
apikey: API_KEY,
permissions: ["allow_join"], // Permission to join the meeting
},
SECRET_KEY,
{
algorithm: "HS256",
expiresIn: "24h",
jwtid: uuid4(),
},
function (err, token) {
console.log(token);
}
);

Available permissions are:

  • allow_join: The participant will be permitted entry without request.
  • ask_join: The participant will not be permitted entry without request.
  • allow_mod: Allow participant to enable/disable other participant's mic/webcam.

Got a Question? Ask us on discord