我的主要目的是在每个用户使用google登录后存储每个用户的client-id。到目前为止,这个github仓库包含了我需要的大部分内容。需要关注的两个主要文件是OAuthSecurityConfig.java和UserRestController.java。
当我导航到时/user,主体将包含我需要的有关用户的所有详细信息。因此,我可以使用以下代码片段获取所需的数据:
Authentication a = SecurityContextHolder.getContext().getAuthentication();
String clientId = ((OAuth2Authentication) a).getOAuth2Request().getClientId();
Run Code Online (Sandbox Code Playgroud)
然后,我可以将clientId存储在仓库中
User user = new User(clientId);
userRepository.save(user);
Run Code Online (Sandbox Code Playgroud)
问题在于用户不必导航到/user。因此,/score/user1无需注册即可导航到 。
该API打算将来用作android应用程序的后端,因此将jQuery重定向到/user是不安全的并且不起作用。
我尝试过的事情:
尝试1
我创建了以下类:
@Service
public class CustomUserDetailsService implements UserDetailsService {
private final UserRepository userRepository;
@Autowired
public CustomUserDetailsService(UserRepository userRepository) {
this.userRepository = userRepository;
}
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
User user = userRepository.findByUsername(username);
if (user == null) {
throw new UsernameNotFoundException(String.format("User %s does …Run Code Online (Sandbox Code Playgroud)