2014-01-21 84 views
1

我正在測試春季社交展示和我寫了一個類似的應用程序。雖然Spring Social Showcase是一個使用Spring MVC編寫的簡單HTML應用程序,但我的應用程序使用的是angularjs和AJAX。訪問令牌被Twitter或Facebook接受後,重定向時出現問題。春季社交登錄和重定向並返回值

在我的流程,首先我更改ProviderSignInController設置:

providerSignInController.setSignUpUrl("/register/social"); <-- redirect into my controller 

再有就是我的控制器:

@RequestMapping(value="/social" ,method=RequestMethod.GET) 
    public ModelAndView social(WebRequest request,){ 
     LOG.info("Register new user using social info"); 
     Connection<?> connection = ProviderSignInUtils.getConnection(request); 

     if(connection != null){ 
      LOG.info("User has been authorize from " + connection.getKey().getProviderId()); 
      LOG.info("Connection class: " + connection.getClass()); 
      model.addAttribute("socialUser",RegisterUserDto.fromSocialProfile(connection.fetchUserProfile())); 
     }else{ 

     } 

     return new ModelAndView("redirect:http://localhost:8080/turnigo-core-web/#/register"); 
    } 

該控制器僅重定向我回網站,登記表,但我沒有從社交供應商處獲得任何用戶個人資料數據。簡單的重定向工作正常,但對我的應用程序來說還不夠。 :/

我沒有有任何想法我怎麼能解決這個問題,所以這裏是我的問題:

  1. 有可能在另一個網頁打開社交網站的身份驗證,然後將其關閉並返回到與用戶個人資料數據的上一頁?

  2. 使用Spring社交登錄的AJAX應用程序是否有任何示例?

回答

0

我建議,而不是使用ProviderSignInController.SocialAuthenticationFilter SocialAuthenticationFilter使全控制器通過Spring Security的社會login.Once社交用戶成功登錄,那麼你的願望重定向到主頁別的錯誤頁面。

我有一個簡單的Spring社交登錄示例,它使用SocialAuthenticationFilter進行身份驗證並與社交提供商保持連接。希望它可以幫助您。

Here是如何使用spring框架實現社交登錄功能的例子。這個應用程序的Blog準確地探索。