Livekitex.TokenVerifier (livekitex v0.1.0)

Provides functionality to verify and validate LiveKit access tokens.

Summary

Functions

Validates token claims without signature verification. Useful for inspecting token contents.

Creates a new TokenVerifier.

Verifies a JWT token and returns the claims.

Verifies a JWT token and returns the claims, raising on error.

Validates specific permissions in a token.

Types

t()

@type t() :: %Livekitex.TokenVerifier{api_key: String.t(), api_secret: String.t()}

Functions

decode_claims(token)

Validates token claims without signature verification. Useful for inspecting token contents.

Parameters

  • token: The JWT token string to decode.

Returns

  • {:ok, claim_grant} on successful decoding.
  • {:error, reason} on decoding failure.

Examples

iex> {:ok, claims} = Livekitex.TokenVerifier.decode_claims(token)
iex> claims.identity
"user"

new(api_key, api_secret)

Creates a new TokenVerifier.

Parameters

  • api_key: The API key for your LiveKit project.
  • api_secret: The API secret for your LiveKit project.

Examples

iex> Livekitex.TokenVerifier.new("api_key", "api_secret")
%Livekitex.TokenVerifier{api_key: "api_key", api_secret: "api_secret"}

verify(verifier, token)

Verifies a JWT token and returns the claims.

Parameters

  • verifier: A TokenVerifier struct.
  • token: The JWT token string to verify.

Returns

  • {:ok, claim_grant} on successful verification.
  • {:error, reason} on verification failure.

Examples

iex> verifier = Livekitex.TokenVerifier.new("devkey", "secret")
iex> {:ok, claims} = Livekitex.TokenVerifier.verify(verifier, valid_token)
iex> claims.identity
"user"

verify!(verifier, token)

Verifies a JWT token and returns the claims, raising on error.

Parameters

  • verifier: A TokenVerifier struct.
  • token: The JWT token string to verify.

Returns

  • claim_grant on successful verification.
  • Raises an exception on verification failure.

Examples

iex> verifier = Livekitex.TokenVerifier.new("devkey", "secret")
iex> claims = Livekitex.TokenVerifier.verify!(verifier, valid_token)
iex> claims.identity
"user"

verify_permissions(verifier, token, required_permissions)

Validates specific permissions in a token.

Parameters

  • verifier: A TokenVerifier struct.
  • token: The JWT token string to verify.
  • permissions: A keyword list of required permissions.

Returns

  • {:ok, claim_grant} if token is valid and has required permissions.
  • {:error, reason} if verification fails or permissions are insufficient.

Examples

iex> verifier = Livekitex.TokenVerifier.new("devkey", "secret")
iex> {:ok, claims} = Livekitex.TokenVerifier.verify_permissions(verifier, token, room_join: true)