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