spring boot项目中隐式社会注册的实现
通过将spring social signin/signup添加到我当前的spring boot项目中,通过实现类spring boot项目中隐式社会注册的实现,spring,spring-social,spring-social-facebook,spring-social-twitter,Spring,Spring Social,Spring Social Facebook,Spring Social Twitter,通过将spring social signin/signup添加到我当前的spring boot项目中,通过实现类ConnectionSignUp和SignInAdapter,应用程序在社交网络网站授权后,需要在我的控制器中实现“/注册”的映射。在这个方法中,我所做的基本上与我在ConConnectionSignup方法上已经实现的相同。有人知道我能做些什么来避免这种双重性,并将应用程序指向我的ConnectionSignUp类,而不是控制器上的一个额外方法吗 到目前为止,我的实现包括以下类:
ConnectionSignUp
和SignInAdapter
,应用程序在社交网络网站授权后,需要在我的控制器中实现“/注册”的映射。在这个方法中,我所做的基本上与我在ConConnectionSignup方法上已经实现的相同。有人知道我能做些什么来避免这种双重性,并将应用程序指向我的ConnectionSignUp
类,而不是控制器上的一个额外方法吗
到目前为止,我的实现包括以下类:
连接签名
@Component
public class CustomConnectionSignUp implements ConnectionSignUp {
@Autowired
private UsuarioDao account;
@Autowired
private JavaMailSender mailSender;
public String execute(Connection<?> connection) {
UserProfile profile = connection.fetchUserProfile();
String user;
try {
Usuario novo = new Usuario(profile.getUsername(),UUID.randomUUID().toString().replaceAll("-", ""),null,null,false,true);
account.insert(novo);
return novo.getLogin();
} catch (Exception e) {
return null;
}
}
}
应用程序属性
# SPRING SOCIAL (SocialWebAutoConfiguration)
spring.social.auto-connection-views=false
# SPRING SOCIAL FACEBOOK (FacebookAutoConfiguration)
spring.social.facebook.app-id=...
spring.social.facebook.app-secret=...
# SPRING SOCIAL TWITTER (TwitterAutoConfiguration)
spring.social.twitter.app-id=...
spring.social.twitter.app-secret=...
在我看来,您似乎没有
将连接注册注入用户连接存储库。所以Spring尝试将用户重定向到带有注册表单的页面。要执行隐式注册,请尝试将ConnectionSignUp
bean传递到setConnectionSignUp()
@Service
public class CustomSocialUserDetailsService implements SocialUserDetailsService {
@Autowired
private UsuarioDao account;
public SocialUserDetails loadUserByUserId(String userId) {
for(Usuario usuario : account.select())
if(usuario.getLogin().equals(userId))
return new SocialUser(usuario.getLogin(), usuario.getSenha(), usuario.isEnabled(), usuario.isAccountNonExpired(), usuario.isCredentialsNonExpired(), usuario.isAccountNonLocked(), usuario.getAuthorities());
return null;
}
}
# SPRING SOCIAL (SocialWebAutoConfiguration)
spring.social.auto-connection-views=false
# SPRING SOCIAL FACEBOOK (FacebookAutoConfiguration)
spring.social.facebook.app-id=...
spring.social.facebook.app-secret=...
# SPRING SOCIAL TWITTER (TwitterAutoConfiguration)
spring.social.twitter.app-id=...
spring.social.twitter.app-secret=...