1

我想从http://example.com/home之类的 url 生成 jsb3 文件。它受到保护。只有登录的用户才能看到这个。人们登录http://example.com/。控制面板(登录“/home”后)完全用 ExtJS 编写。Sencha 工具无法访问它,因为它没有 cookie。

如何为此类 url 创建 JSB3 文件?

我通常这样做

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

但是煎茶需要登录。如果有办法使用现有的 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
4

1 回答 1

0

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

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

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

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

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

于 2012-09-13T22:46:05.683 回答