JWT (JSON Web Token) authentication in Jitsi Meet is like giving someone a digital key to enter a secure room. Only those with a valid token can join your meeting.
When I first deployed Jitsi Meet for my team, everything worked smoothly—until I realized anyone with the link could join. Not ideal. That’s when I discovered JWT authentication, and it completely changed the game. Suddenly, I had full control over who could access our meetings.
If you’re running your own Jitsi server, here’s why JWT is a no-brainer:
From experience, I can say this is the way to host secure client calls, internal meetings, and private webinars.
Here’s a quick overview of how it all comes together:
A typical JWT token includes:
Here’s what you’ll need to get started:
sudo apt install jitsi-meet
This gives you a complete open-source video conferencing platform.
Edit your Prosody config file:
sudo nano /etc/prosody/conf.avail/your-domain.cfg.lua
Under the VirtualHost section, add:
authentication = "token"
app_id = "your_app_id"
app_secret = "your_app_secret"
allow_empty_token = false
For Jicofo:
sudo nano /etc/jitsi/jicofo/sip-communicator.properties
Add:
org.jitsi.jicofo.auth.URL=XMPP:your-domain.com
For Jitsi Meet UI:
sudo nano /etc/jitsi/meet/your-domain-config.js
Add or update:
config.jwt = {
enableUserRolesBasedOnToken: true
};
Apply your changes:
sudo systemctl restart prosody
sudo systemctl restart jicofo
sudo systemctl restart jitsi-videobridge2
You can generate tokens using any backend language. Here’s a Node.js example:
const jwt = require("jsonwebtoken");
const payload = {
context: {
user: {
name: "John Doe",
},
},
aud: "your_app_id",
iss: "your_app_id",
sub: "your-domain.com",
room: "*", // or specify a room name
exp: Math.floor(Date.now() / 1000) + 3600, // 1 hour
};
const token = jwt.sign(payload, "your_app_secret");
console.log(token);
Attach the token to your meeting link like so:
https://your-domain.com/roomname?jwt=YOUR_TOKEN_HERE
We once hosted a workshop with over 100 attendees. Instead of sharing a public link, we generated a unique token for each registered user and emailed it to them. This way, we knew exactly who joined—and we had zero issues with uninvited guests. It felt like a VIP event.
Jitsi Meet is already a powerful open-source tool—but JWT authentication makes it enterprise-ready. Whether you’re running virtual classes, confidential meetings, or big online events, this setup adds a critical layer of privacy and control.
I’ve used JWT in multiple real-world projects, and it never fails to deliver.
Go ahead—give it a try. And if you need any help along the way, contact us for Jitsi expert support. We’re here to make your Jitsi experience seamless and secure.
Looking to set up or optimize your Jitsi? Let's connect and make it happen.