ExtJS:从受保护的url创建JSB3文件

ExtJS: Create JSB3 file from protected url

本文关键字:创建 JSB3 文件 url 受保护 ExtJS      更新时间:2023-09-26

我想从类似的url生成jsb3文件http://example.com/home.它受到保护。只有登录的用户才能看到此信息。用户登录http://example.com/.控制面板(登录后的'/home')在ExtJS中完全写入。Sencha工具无法访问它,因为它没有cookie。

如何为这样的url创建JSB3文件?

我通常通过

sencha create jsb -a http://example.com/home -p home.jsb3

但是sencha需要登录。如果有办法使用现有的cookie头。我本来可以用的。

修复它的一个选项是将url下载为文件,并将该文件作为本地文件提供给sencha。但它也有问题。sencha抛出错误!

$ sencha create jsb -a home.html -p home.jsb3
Error thown from your application with message: TypeError: 'null' is not a constructor

这将取决于您的应用程序环境。我在java环境中也遇到了同样的问题,下面是我们如何解决这个问题。您可以在您的情况下使用类似的解决方案。

我们的auth由Shiro管理,所以在我们的案例中,这就是我们处理匿名用户的地方。Shiro从一个文件中读取安全信息,该文件列出了允许访问它们的URL和用户角色。我们的配置在标准位置查找该文件。这是我们放置真正的安全设置的地方。我们可以在启动java服务器时通过设置JVM属性来覆盖该位置。

当我们想要运行sencha-create时,我们启动一个java服务器,该服务器指向一个允许匿名访问所有资源的自定义安全文件。现在,phantom.js可以在没有授权的情况下加载页面。(phantom.js是sencha创建的用于加载页面的无头浏览器)。

然后,我们完全按照您上面指定的方式运行sencha create。

这样做的缺点是,我们必须确保我们的应用程序不会为匿名用户抛出异常。尽管我们的应用程序总是需要身份验证,但我们需要确保为匿名用户正确加载所有JavaScript。