Spring社交登录和重定向和返回值

时间:2014-01-21 22:02:16

标签: java spring spring-social spring-social-facebook

我正在测试Spring Social Showcase,我写了一个类似的应用程序。虽然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 Social登录的AJAX应用程序是否有任何示例?

1 个答案:

答案 0 :(得分:0)

我建议使用SocialAuthenticationFilter而不是ProviderSignInController.SocialAuthenticationFilter为Spring社交登录提供完全控制。一旦社交用户成功登录,那么您希望重定向到主页,否则返回错误页面。

我有一个简单的spring社交登录示例,它使用SocialAuthenticationFilter来验证和维护与社交提供者的联系。希望它可以帮助您。

Here是如何使用Spring框架实现社交登录功能的示例。Blog用于精确探索。