使用 facebook 进行春季社交登录

Posted

技术标签:

【中文标题】使用 facebook 进行春季社交登录【英文标题】:spring social Sign-in using facebook 【发布时间】:2015-07-07 10:37:05 【问题描述】:

我成功完成了注册流程,并且用户配置文件已注册并在用户连接表中创建了一条记录。

我正在使用带有 Spring 安全性的 Spring-social 遵循blog 中提到的步骤

现在我的问题是旅程 2,这意味着用户已经使用 facebook 注册,并且需要使用 facebook 登录。我可以通过这种方式设置登录后 url

SpringSocialConfigurer sc = new SpringSocialConfigurer();
    sc.postLoginUrl("/account/social");

并将其添加到安全过滤器链中。

所以调用这个方法,但连接总是空的。其实我想获取登录用户的用户ID和用户名

  @RequestMapping(value="/account/social", method =  RequestMethod.GET)
public void resendUsl(HttpServletRequest request,WebRequest request1, HttpServletResponse response,Model model) throws IOException 
    System.out.println("here");
    Connection<?> connection = ProviderSignInUtils.getConnection(request1);

我已经尝试创建一个类SimpleSignInAdaptor,但这里根本没有来电。

public class SimpleSignInAdaptor implements SignInAdapter 

登录成功后如何获取用户信息?

感谢您的帮助

更新以这种方式解决,但如果用户使用 facebook 和 twitter 帐户注册并尝试使用其中之一登录,则会出现问题。它总是获取 facebook 连接通过连接存储库获得连接对象 @Inject private ConnectionRepository connectionRepository;

@RequestMapping(value="/social", method =  RequestMethod.GET)
public void resendUsl(HttpServletRequest request,WebRequest request1, HttpServletResponse response,Model model) throws IOException 

    Connection<Facebook> connection = connectionRepository.findPrimaryConnection(Facebook.class);

【问题讨论】:

【参考方案1】:

这可能会帮助你:Spring Social Project

【讨论】:

我将它与 spring security 一起使用。 只需在上面添加 Spring Security 层 :) @Arpit 我正在使用你的项目,效果很好!但是我如何使用这种机制来创建一个新用户并在我的 spring mvc 应用程序中自动对他进行身份验证?谢谢 @rmpt:在其上添加一个 Spring Security 层,动态创建用户。参考:github.com/arpitaggarwal/spring-app

以上是关于使用 facebook 进行春季社交登录的主要内容,如果未能解决你的问题,请参考以下文章

使用社交媒体帐户(即 Facebook)注册/登录到 magnolia cms

iOS:通过自动登录获取 Facebook 访问令牌

OAuth2“社交登录”流程(允许通过 Facebook/Twitter 进行 OAuth2 身份验证):是不是有任何示例/文献?

用于颤振的 Facebook 社交登录

在 laravel 中使用社交名流登录 Facebook

使用 Angular 2+ 的社交登录时,组件之间的信息以何种方式传递?