Я могу получить токен доступа (для Google oauth2.0) через поток предоставления кода авторизации.Я много искал на официальной странице github scribejava , но не смог найти то же самое с помощью потока предоставления кода имплицитного кода.
Вот код для потока разрешения кода авторизации
@WebServlet("/home")
public class Home extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
final String cliendId = "client_id";
final String clientSecret = "clinet_secret";
final String redirectUri = "http://127.0.0.1:8080/OAuth/redirect";
final String scope = "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/plus.login";
final String secretState = Double.toString(Math.random());
//Construct Google authorization URL
OAuth20Service authUrl = new ServiceBuilder().apiKey(cliendId).apiSecret(clientSecret).debug().scope(scope)
.state(secretState).callback(redirectUri).build(GoogleApi20.instance());
// Add additional parameters
final Map<String, String> additionalParams = new HashMap<>();
//additionalParams.put("access_type", "offline");
additionalParams.put("prompt", "consent");
// Obtain authorization URL
String authorizationUrl = authUrl.getAuthorizationUrl(additionalParams);
System.out.println("Authorization Url - "+authorizationUrl + "\n");
// Add authUrl to session variable to be used in Redirect.java
HttpSession session = request.getSession();
session.setAttribute("authUrl", authUrl);
response.sendRedirect(authorizationUrl);
}
}