public void example1(Vertx vertx) { OAuth2Auth oauth2 = OAuth2Auth.create( vertx, OAuth2FlowType.AUTH_CODE, new JsonObject() .put("clientID", "YOUR_CLIENT_ID") .put("clientSecret", "YOUR_CLIENT_SECRET") .put("site", "https://github.com/login") .put("tokenPath", "/oauth/access_token") .put("authorizationPath", "/oauth/authorize")); // when there is a need to access a protected resource or call a protected method, // call the authZ url for a challenge String authorization_uri = oauth2.authorizeURL( new JsonObject() .put("redirect_uri", "http://localhost:8080/callback") .put("scope", "notifications") .put("state", "3(#0/!~")); // when working with web application use the above string as a redirect url // in this case GitHub will call you back in the callback uri one should now complete the // handshake as: String code = "xxxxxxxxxxxxxxxxxxxxxxxx"; // the code is provided as a url parameter by github callback // call oauth2.getToken( new JsonObject().put("code", code).put("redirect_uri", "http://localhost:8080/callback"), res -> { if (res.failed()) { // error, the code provided is not valid } else { // save the token and continue... } }); }
public void example2(Vertx vertx, HttpServerResponse response) { // Set the client credentials and the OAuth2 server JsonObject credentials = new JsonObject() .put("clientID", "<client-id>") .put("clientSecret", "<client-secret>") .put("site", "https://api.oauth.com"); // Initialize the OAuth2 Library OAuth2Auth oauth2 = OAuth2Auth.create(vertx, OAuth2FlowType.AUTH_CODE, credentials); // Authorization oauth2 URI String authorization_uri = oauth2.authorizeURL( new JsonObject() .put("redirect_uri", "http://localhost:8080/callback") .put("scope", "<scope>") .put("state", "<state>")); // Redirect example using Vert.x response.putHeader("Location", authorization_uri).setStatusCode(302).end(); JsonObject tokenConfig = new JsonObject() .put("code", "<code>") .put("redirect_uri", "http://localhost:3000/callback"); // Callbacks // Save the access token oauth2.getToken( tokenConfig, res -> { if (res.failed()) { System.err.println("Access Token Error: " + res.cause().getMessage()); } else { // Get the access token object (the authorization code is given from the previous step). AccessToken token = res.result(); } }); }