Creating an Access Token
Using
key
and secret
that are associated with your customer account, you can use
the Server SDK to create an access token for joining a Room
. The following example
shows how to create a token, allowing a participant
to join, publish, and subscribe to
other participants
inside the Room
.import { AccessToken } from "@atmokyaudio/engage-server-sdk";
const participantName = "<name_of_participant>";
const roomName = "<name_of_room>";
const accessToken = new AccessToken("<api_key>", "<api_secret>", {
identity: participantName,
});
accessToken.addGrant({
roomJoin: true,
room: roomName,
canPublish: true,
canSubscribe: true,
});
const token = accessToken.toJwt();
⚠️
Keep
key
and secret
safe and do not embed them in client-side
applications. If an unauthorized entity manages to get access to key
and
secret
, they will be able to grant themselves access to any Rooms
associated with the customer account.Command Line Interface
For development use, the ServerSDK also has a command line interface so you don't need
to run a full-fledged authentication server to generate a token:
npx atmoky-engage create-token \
--key <key> \
--secret <secret>
You can also pass optional parameters to the CLI:
npx atmoky-engage create-token \
--key <key> \
--secret <secret> \
--ttl <ttl> \
--room <roomName> \
--participant <participantName>
By default, the following grants are currently set for tokens created from the CLI:
- Publish
- Subscribe
- Join room
- List rooms
These can be disabled individually:
npx atmoky-engage create-token \
--key foo \
--secret bar \
--publish false \
--subscribe false \
--join false \
--list false