2012-07-10 43 views
0

即時通訊在春季安全和spring-security-facebook以及我們正在構建的應用程序中,我們必須將它們耦合在一起。一切都很好,我需要知道如何收聽Facebook登錄成功事件。是否有一個已經做了一個強加他趕上facebook事件成功的東西?我需要,因爲在應用程序的開始(在添加spring -security-Facebook插件之前);我們在「grails.plugins.springsecurity.onInteractiveAuthenticationSuccessEvent」事件(在config.groovy文件中配置)中附加了特殊行爲,並且我們必須在用戶使用Facebook帳戶連接時執行相同的特殊行爲。是否有一個我們不得不聽的事件(延伸springsecurity各種事件)?Grails + spring-security-facebook收聽登錄成功事件

任何想法?

PS:爲解決搜索時,我們找到了一種方法來捕捉FB JS事件和解決,以達到我們想要的結果作爲,但我們會盡量想不走那條路....

回答

0

問題在於,當前的Spring Security Facebook在每次請求中驗證用戶身份(通過透明地收聽FB cookie),所以您將在每個請求中獲得此事件。可能這不是你想要的,對吧?它與每個請求上都有一個過濾器相同。

順便說一句,你可以處理情況,當用戶登錄到您的應用程序第一次,但在服務FacebookAuthService實施onCreate(user, token)afterCreate(user, token)(你必須在這種情況下,建立這樣的服務)


例子:

文件grails-app/services/FacebookAuthService.groovy

class FacebookAuthService { 

    void afterCreate(def user, def token) { 
     log.info("New user!") //or any code there 
    } 

} 
+0

你給(實現我們自己的OnCreate解決方案(用戶令牌)和afterCreat e(用戶,令牌)可以幫助我們很多 – KAdjevi 2012-07-11 09:17:12

+0

FacebookAuthService它是你可以創建的optinal服務(默認情況下不存在)來控制插件行爲 – 2012-07-11 09:51:58

+0

OK你能給我一個簡單的例子,請讓我仍然看不到代碼這個服務,以及如何收聽Facebook登錄成功事件?因爲這些方法在「FacebookAuthService」中,它們是基於過濾器調用的?對不起,但即時通訊只是錯過了工作流程...你可以張貼我一個小例子..在此先感謝... – KAdjevi 2012-07-11 19:35:37