diff --git a/src/channels/web/static/app.js b/src/channels/web/static/app.js
index 1438392d..c229f60d 100644
--- a/src/channels/web/static/app.js
+++ b/src/channels/web/static/app.js
@@ -4415,12 +4415,14 @@ function createTokenForUser(userId, displayName) {
function showTokenBanner(tokenValue) {
var banner = document.getElementById('users-token-result');
if (!banner) return;
+ var loginUrl = window.location.origin + '/?token=' + encodeURIComponent(tokenValue);
banner.style.display = 'block';
- banner.innerHTML = 'Token created! Copy this now — it won\'t be shown again:
'
- + '' + escapeHtml(tokenValue) + ''
- + '';
- document.getElementById('token-copy-btn').addEventListener('click', function() {
- navigator.clipboard.writeText(tokenValue);
+ banner.innerHTML = 'User created! Share this login link — it won\'t be shown again:
'
+ + '' + escapeHtml(loginUrl) + ''
+ + ''
+ + '
Raw token: ' + escapeHtml(tokenValue) + '';
+ document.getElementById('token-copy-link').addEventListener('click', function() {
+ navigator.clipboard.writeText(loginUrl);
this.textContent = 'Copied!';
});
}
diff --git a/src/channels/web/static/i18n/en.js b/src/channels/web/static/i18n/en.js
index 761767fe..f984bb14 100644
--- a/src/channels/web/static/i18n/en.js
+++ b/src/channels/web/static/i18n/en.js
@@ -44,7 +44,8 @@ I18n.register('en', {
'settings.channels': 'Channels',
'settings.networking': 'Networking',
'settings.mcp': 'MCP',
-
+ 'settings.users': 'Users',
+
// Status
'status.connected': 'Connected',
'status.disconnected': 'Disconnected',
diff --git a/src/channels/web/static/i18n/zh-CN.js b/src/channels/web/static/i18n/zh-CN.js
index 0fb1568a..09d28d74 100644
--- a/src/channels/web/static/i18n/zh-CN.js
+++ b/src/channels/web/static/i18n/zh-CN.js
@@ -44,7 +44,8 @@ I18n.register('zh-CN', {
'settings.channels': '频道',
'settings.networking': '网络',
'settings.mcp': 'MCP',
-
+ 'settings.users': '用户管理',
+
// 状态
'status.connected': '已连接',
'status.disconnected': '已断开',