[mirotalksfu] - add HOST_USERS env var
هذا الالتزام موجود في:
@@ -64,7 +64,7 @@ dev dependencies: {
|
||||
* @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon
|
||||
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970
|
||||
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
|
||||
* @version 1.8.59
|
||||
* @version 1.8.60
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
@@ -365,38 +365,47 @@ module.exports = {
|
||||
* Host Protection Configuration
|
||||
* ============================
|
||||
* Controls access to host-level functionality and room management.
|
||||
* Supports multiple authentication methods including local users and API-based validation.
|
||||
*
|
||||
* Core Protection Settings:
|
||||
* -------------------------
|
||||
* - protected : Enable/disable host protection globally
|
||||
* - user_auth : Require user authentication for host access
|
||||
* - users_from_db : Fetch authorized users from database/API instead of local config (eg., MiroTalk WEB)
|
||||
* Authentication Methods:
|
||||
* ----------------------
|
||||
* - Local users (defined in config or via HOST_USERS env variable)
|
||||
* - API/database validation (users_from_db=true)
|
||||
*
|
||||
* Core Settings:
|
||||
* --------------
|
||||
* - protected : Enable/disable host protection globally
|
||||
* - user_auth : Require user authentication for host access
|
||||
* - users_from_db : Fetch users from API/database instead of local config
|
||||
*
|
||||
* API Integration:
|
||||
* ----------------
|
||||
* - users_api_secret_key : Secret key for API authentication
|
||||
* - users_api_endpoint : Endpoint to validate user credentials
|
||||
* - users_api_room_allowed : Endpoint to check if user can access specific room
|
||||
* - users_api_rooms_allowed : Endpoint to get list of allowed rooms for user
|
||||
* - api_room_exists : Endpoint to verify if room exists
|
||||
* ---------------
|
||||
* - users_api_secret_key : Secret key for API authentication
|
||||
* - users_api_endpoint : Endpoint to validate user credentials
|
||||
* - users_api_room_allowed : Endpoint to check if user can access a room
|
||||
* - users_api_rooms_allowed : Endpoint to get allowed rooms for a user
|
||||
* - api_room_exists : Endpoint to verify if a room exists
|
||||
*
|
||||
* Local User Configuration:
|
||||
* -------------------------
|
||||
* - users : Array of authorized users (used when users_from_db=false)
|
||||
* - username : Login username
|
||||
* - password : Login password
|
||||
* - displayname : User's display name
|
||||
* - allowed_rooms : List of rooms user can access ('*' for all rooms)
|
||||
* ------------------------
|
||||
* - users: Array of authorized users (used if users_from_db=false)
|
||||
* - Define via HOST_USERS env variable:
|
||||
* HOST_USERS=username:password:displayname:room1,room2|username2:password2:displayname2:*
|
||||
* (Each user separated by '|', fields by ':', allowed_rooms comma-separated or '*' for all)
|
||||
* - If HOST_USERS is not set, falls back to DEFAULT_USERNAME, DEFAULT_PASSWORD, etc.
|
||||
* - Fields:
|
||||
* - username : Login username
|
||||
* - password : Login password
|
||||
* - displayname : User's display name
|
||||
* - allowed_rooms : List of rooms user can access ('*' for all)
|
||||
*
|
||||
* Presenter Management:
|
||||
* --------------------
|
||||
* - list : Array of usernames who can be presenters
|
||||
* - join_first : First joiner becomes presenter [true/false] default true
|
||||
* - list : Array of usernames who can be presenters
|
||||
* - join_first : First joiner becomes presenter (default: true)
|
||||
*
|
||||
* Documentation:
|
||||
* --------------
|
||||
* - https://docs.mirotalk.com/mirotalk-sfu/host-protection/
|
||||
* -------------
|
||||
* https://docs.mirotalk.com/mirotalk-sfu/host-protection/
|
||||
*/
|
||||
host: {
|
||||
protected: process.env.HOST_PROTECTED === 'true',
|
||||
@@ -411,19 +420,41 @@ module.exports = {
|
||||
process.env.USERS_ROOMS_ALLOWED_ENDPOINT || 'http://localhost:9000/api/v1/user/roomsAllowed', // 'https://webrtc.mirotalk.com/api/v1/user/roomsAllowed'
|
||||
api_room_exists: process.env.ROOM_EXISTS_ENDPOINT || 'http://localhost:9000/api/v1/room/exists', // 'https://webrtc.mirotalk.com//api/v1/room/exists'
|
||||
|
||||
users: [
|
||||
{
|
||||
username: process.env.DEFAULT_USERNAME || 'username',
|
||||
password: process.env.DEFAULT_PASSWORD || 'password',
|
||||
displayname: process.env.DEFAULT_DISPLAY_NAME || 'username display name',
|
||||
allowed_rooms: process.env.DEFAULT_ALLOWED_ROOMS
|
||||
? process.env.DEFAULT_ALLOWED_ROOMS.split(splitChar)
|
||||
.map((room) => room.trim())
|
||||
.filter((room) => room !== '')
|
||||
: ['*'],
|
||||
},
|
||||
// Additional users can be added here
|
||||
],
|
||||
users: process.env.HOST_USERS
|
||||
? process.env.HOST_USERS.split('|').map((userStr) => {
|
||||
const [username, password, displayname, allowedRoomsStr] = userStr.split(':');
|
||||
return {
|
||||
username: username || '',
|
||||
password: password || '',
|
||||
displayname: displayname || '',
|
||||
allowed_rooms: allowedRoomsStr
|
||||
? allowedRoomsStr
|
||||
.split(',')
|
||||
.map((room) => room.trim())
|
||||
.filter((room) => room !== '')
|
||||
: ['*'],
|
||||
};
|
||||
})
|
||||
: [
|
||||
{
|
||||
username: 'username',
|
||||
password: 'password',
|
||||
displayname: 'username displayname',
|
||||
allowed_rooms: ['*'],
|
||||
},
|
||||
{
|
||||
username: 'username2',
|
||||
password: 'password2',
|
||||
displayname: 'username2 displayname',
|
||||
allowed_rooms: ['room1', 'room2'],
|
||||
},
|
||||
{
|
||||
username: 'username3',
|
||||
password: 'password3',
|
||||
displayname: 'username3 displayname',
|
||||
},
|
||||
//...
|
||||
],
|
||||
|
||||
presenters: {
|
||||
list: process.env.PRESENTERS
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم