我想从http://example.com/home这样的网址生成jsb3文件。它受到保护。只有登录用户才能看到这一点。人们登录http://example.com/。控制面板(登录'/ home'后)在ExtJS中完全写入。 Sencha工具无法访问它,因为它没有cookie。
如何为此类网址创建JSB3文件?
我通常是通过
来做到这一点sencha create jsb -a http://example.com/home -p home.jsb3
但是,sencha需要登录。如果有办法使用现有的cookie标头。我本来可以用的。
修复它的一个选项是将网址下载为文件并将此文件作为本地文件提供sencha
。但它有问题。 sencha
抛出错误!
$ sencha create jsb -a home.html -p home.jsb3
Error thown from your application with message: TypeError: 'null' is not a constructor
答案 0 :(得分:0)
这取决于您的应用程序环境。我在java环境中遇到了同样的问题,这就是我们如何解决它。您可以在您的情况下使用类似的解决方案。
我们的身份验证由Shiro管理,因此在我们的案例中,我们处理匿名用户。 Shiro从文件中读取安全信息,该文件列出了允许访问它们的URL和用户角色。我们的配置在标准位置查找该文件。这是我们放置真实安全设置的地方。我们可以通过在启动java服务器时设置JVM属性来覆盖该位置。
当我们想要运行sencha create时,我们启动一个指向自定义安全文件的java服务器,该文件允许匿名访问所有资源。现在,phantom.js可以在未经授权的情况下加载页面。 (phantom.js是sencha创建用于加载页面的无头浏览器。)
然后我们按照您上面的指定运行sencha create。
这样做的缺点是我们必须确保我们的应用程序不会为匿名用户抛出异常。即使我们的应用程序总是需要身份验证,我们也需要确保为匿名用户正确加载所有JavaScript。