Wie gehe ich mit URI für Google OAuth2.o im Spring Boot um?Java

Java-Forum
Anonymous
 Wie gehe ich mit URI für Google OAuth2.o im Spring Boot um?

Post by Anonymous »

Code: Select all

package com.Oauth.OauthBackend.services.JwtService.UserService;

import java.util.Optional;

import org.springframework.security.core.Authentication;
import org.springframework.security.oauth2.core.user.OAuth2User;
import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler;
import org.springframework.stereotype.Component;

import com.Oauth.OauthBackend.exceptionHandler.CustomException;
import com.Oauth.OauthBackend.models.Users;
import com.Oauth.OauthBackend.repository.UserRepository;
import com.Oauth.OauthBackend.services.JwtService.JwtService;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@Component
public class UserSuccessHandler extends SimpleUrlAuthenticationSuccessHandler {

private final JwtService jwtService;
private final UserRepository repository;

public UserSuccessHandler(JwtService jwtService, UserRepository repository) {
this.jwtService = jwtService;
this.repository = repository;
}

@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
Authentication authentication) {

try {
System.out.println("come here");
OAuth2User oAuth2User = (OAuth2User) authentication.getPrincipal();
String email = oAuth2User.getAttribute("email");
Object id = oAuth2User.getAttribute("id");
String gitId = String.valueOf(id);
String claim = (email != null) ? email : gitId;

Users user;
Optional userOptional = (email != null) ?
repository.findByEmail(claim) :
repository.findByGitID(claim);

if (userOptional.isEmpty()) {
throw new CustomException("User not found", 404);
}

user = userOptional.get();

String accessToken = jwtService.generateAccessToken(claim);
String refreshToken = jwtService.generateRefreshToken(user.getId());

user.setRefreshToken(refreshToken);
repository.save(user);

// Redirect back to app with token
String deepLink =  "myapp://page2?token=ACCESS_TOKEN&uid=USER_ID"
.replace("ACCESS_TOKEN", accessToken)
.replace("USER_ID", user.getId());
response.sendRedirect(deepLink);
System.out.println(deepLink);
System.out.println("accessToken is " + accessToken);
} catch (Exception e) {
throw new CustomException("Error processing authentication success", 500);
}
}
}
Das Problem, mit dem ich konfrontiert bin, ist, als ob ich nicht sicher bin, wie ich mit dem Umleitungs-URI für Google in Google Console umgehen soll. Zunächst habe ich meinen Frühlings-Apps bereitgestellt, um den Domain-Namen für https://oAuth-5.onrender.com/oauth2/aut ... ize/google zu erhalten. https://oauth-5.onrender.com/login/oauth2/code/google sowie in Google Dev Console, aber Fehler bei der Umleitung von URI-Nichtübereinstimmung. Müssen Sie sich anmelden und dann den Deep -Link mit allen Anmeldeinformationen wie String DeepLink = "MyApp: // Seite 2? Token = access_token & uid = user_id"
.Replace("access_Token ", AccessToken)
.Replace (accessToken)
Replace (actoken); In UserSuccessHandler, OnAuthenticationsCess.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post