0

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

4

1 回答 1

0

我终于通过实现来做到了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

于 2016-05-10T19:26:37.387 回答