2012-08-28 34 views
1

我想從像http://example.com/home這樣的url生成jsb3文件。它的保護。只有登錄用戶才能看到這個。用戶登錄http://example.com/。控制面板(登錄'/ home'後)已完整寫入ExtJS。 Sencha工具無法訪問它,因爲它沒有cookie。ExtJS:從受保護的URL創建JSB3文件

如何爲這樣的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 

回答

0

這將取決於您的應用程序環境。我在java環境中遇到了同樣的問題,這是我們如何解決這個問題。您可能可以在您的情況下使用類似的解決方案。

我們的身份驗證由Shiro管理,所以在我們的情況下,這是我們處理匿名用戶的地方。 Shiro從列出允許訪問它們的URL和用戶角色的文件中讀取安全信息。我們的配置在標準位置查找該文件。這是我們放置真實安全設置的地方。我們可以在啓動java服務器時通過設置JVM屬性來覆蓋該位置。

當我們想運行sencha create時,我們啓動一個java服務器,該服務器指向一個允許匿名訪問所有資源的自定義安全文件。現在,phantom.js可以在未經授權的情況下加載頁面。 (phantom.js sencha創建的無頭瀏覽器用來加載頁面)。

然後,我們運行sencha創建完全按照您在上面指定。

這樣做的缺點是我們必須確保我們的應用程序不會爲匿名用戶拋出異常。儘管我們的應用程序總是需要認證,但我們需要確保我們的所有JavaScript適用於匿名用戶。