火箭聊天,无法在'DOMWindow'上执行'postMessage'



在我的Web应用程序中,我使用iframe来加载"RocketChat"聊天实例。但是当我尝试使用浏览器登录火箭聊天时window.postMessage()给我一个控制台错误。请找到下面的屏幕截图。

无法在"DOMWindow"上执行"postMessage":提供的目标源("https://haulmatic.rocket.chat"(与收件人窗口的源("http://localhost:3030"(不匹配。

axios.post('https://myDomain.rocket.chat/api/v1/login', {
            username: '<myUserName>',
            password: '<myPassword>'
        }).then(function (response) {
            if (response.data.status === 'success') {
                res.set('Content-Type', 'text/html');
                res.send(`
                <iframe id="iframe" width="400px" height="900px" src="https://myDomain.rocket.chat?origin=http://localhost:3030"></iframe>
                <script>
                    window.parent.postMessage({
                        event: 'login-with-token',
                        loginToken: '${ response.data.data.authToken }'
                    }, 'https://myDomain.rocket.chat/'); // rocket.chat's URL   206.189.138.6:3000
                </script> 
                `);
            }
        }).catch(function() {
            res.sendStatus(401);
        });

参考:火箭聊天iframe身份验证文档

您需要

使用有效的用户令牌向 iframe 发送命令,该用户令牌已经是您正在 iframe 中浏览的频道中的成员。

这是我的详细答案:https://stackoverflow.com/a/58820488/628592

相关内容

  • 没有找到相关文章

最新更新