// ============================================== // AuthPlugin.jslib - WebGL JavaScript Bridge // ============================================== // Place in Assets/Plugins/WebGL/ mergeInto(LibraryManager.library, { // Get token from URL parameter (?token=xxx) GetTokenFromURL: function() { var urlParams = new URLSearchParams(window.location.search); var token = urlParams.get('token'); if (token) { var bufferSize = lengthBytesUTF8(token) + 1; var buffer = _malloc(bufferSize); stringToUTF8(token, buffer, bufferSize); return buffer; } return null; }, // Get token from parent frame (for iframe embedding) GetTokenFromParent: function() { if (window.breakpilotToken) { var token = window.breakpilotToken; var bufferSize = lengthBytesUTF8(token) + 1; var buffer = _malloc(bufferSize); stringToUTF8(token, buffer, bufferSize); return buffer; } return null; }, // Request token from parent frame via postMessage RequestTokenFromParent: function() { // Listen for token from parent window.addEventListener('message', function(event) { // Verify origin in production! if (event.data && event.data.type === 'breakpilot_token') { window.breakpilotToken = event.data.token; // Send to Unity if (window.unityInstance) { window.unityInstance.SendMessage('AuthManager', 'ReceiveTokenFromJS', event.data.token); } } }, false); // Request token from parent if (window.parent !== window) { window.parent.postMessage({ type: 'breakpilot_request_token' }, '*'); } } });