我想通過使用Devise的adobe flex應用程序登錄到我的Rails應用程序,但無法弄清楚如何將AMF請求映射到Devise :: SessionsController#New。我嘗試以下使用Rails Devise和Adobe AMF3登錄
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="700" minHeight="600">
<fx:Declarations>
<mx:RemoteObject id="deviseService" fault="onFault(event)"
source="Devise:SessionsController" destination="rubyamf">
<mx:method name="new" result="onResult(event)" />
</mx:RemoteObject>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.Fault;
private function onFault(e:FaultEvent):void
{
resultTxt.text = e.fault.faultString;
}
private function onResult(e:ResultEvent):void
{
resultTxt.text = e.message.toString();
}
]]>
</fx:Script>
<s:Panel title="Login" width="300" height="150" x="597" y="248" >
<s:VGroup horizontalAlign="center" paddingLeft="5" paddingRight="5">
<s:HGroup paddingLeft="5" paddingRight="5">
<s:Label text="Username" />
<s:TextInput id="username" width="100" />
</s:HGroup>
<s:HGroup >
<s:Label text="Password" />
<s:TextInput id="password" width="100" />
</s:HGroup>
<s:Button id="submitLogin" label="go" click="deviseService.new.send({name: username.text, password: password.text});" />
<s:Label id="resultTxt" />
</s:VGroup>
</s:Panel>
當我點擊 「轉到」 按鈕,鐵軌報告以下
Started POST "/rubyamf/gateway" for 127.0.0.1 at 2010-09-19 18:59:52 -0500
Rendered devise/shared/_links.erb (1.0ms)
Rendered devise/menu/_registration_items.html.erb (2.0ms)
Rendered devise/menu/_login_items.html.erb (1.0ms)
{"session_id"=>"dc95da0ed877a214ffc60eeb3f635c34", "_csrf_token"=>"9npBO2tywAK30O43rroOwMZTEC8P+kUSdjuxe2u9hxA=", "flash"=>{:alert=>"You need to sign in or sign up before continuing."}}
Rendered devise/sessions/new.html.erb within layouts/application (40.0ms)
Completed 200 OK in 176ms (Views: 69.0ms | ActiveRecord: 0.0ms)
Started POST "/rubyamf/gateway" for 127.0.0.1 at 2010-09-19 18:59:53 -0500
Sending back AMF
任何建議都歡迎。 Thanx
所以我應該使用ruby/rails的不同方法來建立/驗證與RubyAMF的會話? – Joey 2010-09-23 17:40:57
或者我以前可以通過Devise登錄並使用ExternalInterface傳遞會話參數? – Joey 2010-09-23 18:31:32
你必須決定什麼最適合你。我開發的Flash應用程序都有相應的網站,可以處理身份驗證和會話設置。在這種情況下,通過ExternalInterface或Flash變量將會話標記傳遞給Flash是相對簡單的(儘管查找會很痛苦)。或者給Warden/Devise寫一些擴展可能會更容易,這樣可以讓你自己傳遞一個登錄名和密碼,而不是從請求中提取。我對守望者不太熟悉,所以它可能並不那麼困難。 – warhammerkid 2010-09-23 22:10:31