cyberdeep / laravel-agora-token-generator
Laravel package for generating Agora.io tokens (RTC, RTM, Chat) with support for both V1 and V2 token formats
Fund package maintenance!
3x1io
Requires
- php: ^8.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0|^12.0
Requires (Dev)
- orchestra/testbench: ^6.0|^7.0|^8.0|^9.0
- phpunit/phpunit: ^9.5|^10.0
This package is auto-updated.
Last update: 2025-07-05 11:56:11 UTC
README
Agora Token Generator With easy to use Service Class for Laravel applications. This package supports both Agora V1 and V2 token generation, including V2 tokens that start with "007".
Requirements
- PHP 8.0.2 or higher
- Laravel 8.x, 9.x, 10.x, 11.x, or 12.x
Installation
From Packagist
composer require cyberdeep/laravel-agora-token-generator:^1.0
If you encounter stability issues, you can explicitly allow dev stability:
composer require cyberdeep/laravel-agora-token-generator:^1.0 --with-all-dependencies
Local Installation
For instructions on how to install this package locally during development, please see LOCAL_INSTALLATION.md.
Configuration
After installing the package, publish the configuration file:
php artisan vendor:publish --tag=laravel-agora-token-generator-config
Then, add your Agora credentials to your .env
file:
AGORA_APP_ID=your-app-id
AGORA_APP_CERTIFICATE=your-app-certificate
AGORA_TOKEN_BUILDER=v1 # Use 'v1' for RtcTokenBuilder or 'v2' for RtcTokenBuilder2 (generates tokens starting with 007)
Usage
Programmatic Usage
use CyberDeep\LaravelAgoraTokenGenerator\Services\Agora; // Generate a token for a publisher $token = Agora::make($userId) ->channel('channel-name') ->uId('user-id') ->join(false) // false for publisher, true for subscriber ->audioOnly(false) // false for video+audio, true for audio only ->token();
The token generation method will use either V1 or V2 based on your configuration setting (AGORA_TOKEN_BUILDER
).
Console Command
You can also generate tokens directly from the command line:
php artisan agora:generate-token channel-name user-id
Options:
--join
: Generate a token for a subscriber (audience) instead of a publisher (host)--audio-only
: Generate a token for audio-only mode
For more detailed examples and usage instructions, see examples/generate_token.md.
Standalone Token Generator
If you need to generate tokens without Laravel integration, you can use the standalone token generator:
php standalone_token_generator.php <app_id> <app_certificate> <channel> <uid> [--join] [--audio-only] [--v2]
The --v2
flag enables Agora V2 token generation, which produces tokens that start with "007".
For more information about the standalone token generator, see standalone_token_generator.md.
Token Versions
This package supports two versions of Agora tokens:
V1 Tokens
- Generated using the
RtcTokenBuilder
class - Default token version if not specified
- Set
AGORA_TOKEN_BUILDER=v1
in your.env
file
V2 Tokens
- Generated using the
RtcTokenBuilder2
class - Tokens start with "007"
- Provides enhanced security and features
- Set
AGORA_TOKEN_BUILDER=v2
in your.env
file
Changelog
Please see CHANGELOG for more information on what has changed recently.
Security
Please see SECURITY for more information about security.
Credits
License
The MIT License (MIT). Please see License File for more information.