неявное предоставление кода с использованием библиотеки scribejava для Google - PullRequest
0 голосов
/ 04 октября 2018

Я могу получить токен доступа (для 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);
    }
}
...