使用 Spring 社交更新 Facebook 个人资料

Update Facebook profile with Spring Social

我在 Spring 社交网站上使用 Facebook 登录。我还在我的数据库中创建了一个用户,其中包含每个 Facebook 用户的特定应用程序首选项。用户登录后,我想在我的数据库中更新他的个人信息,如姓名和电子邮件。最好的方法是什么?如何做?

我终于实现了 ApplicationListener<InteractiveAuthenticationSuccessEvent>,它在用户登录后被调用。

@Override
public void onApplicationEvent(InteractiveAuthenticationSuccessEvent authEvent) {
    Authentication auth = authEvent.getAuthentication();
    if (auth instanceof SocialAuthenticationToken && auth.getPrincipal() instanceof User) {
        // every time a user authenticates through a social network, then we update his info from there
        User user = (User)auth.getPrincipal();
        // ... update user using ((SocialAuthenticationToken)auth).getConnection()
        // ... and save it
    }
}

也可以通过覆盖 ConnectionRepository#updateConnection.

来实现