Username must be supplied during oauth registration
diff --git a/src/main/java/com/googlesource/gerrit/plugins/oauth/GitHubOAuthService.java b/src/main/java/com/googlesource/gerrit/plugins/oauth/GitHubOAuthService.java
index a7959ee..c5b3c50 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/oauth/GitHubOAuthService.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/oauth/GitHubOAuthService.java
@@ -86,7 +86,9 @@
       JsonElement email = jsonObject.get("email");
       JsonElement name = jsonObject.get("name");
       JsonElement id = jsonObject.get("id");
+      JsonElement login = jsonObject.get("login");
       return new OAuthUserInfo(id.getAsString(),
+          login.isJsonNull() ? null : login.getAsString(),
           email.isJsonNull() ? null : email.getAsString(),
           name.isJsonNull() ? null : name.getAsString());
     } else {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/oauth/GoogleOAuthService.java b/src/main/java/com/googlesource/gerrit/plugins/oauth/GoogleOAuthService.java
index db24967..ed05b19 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/oauth/GoogleOAuthService.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/oauth/GoogleOAuthService.java
@@ -43,8 +43,10 @@
 class GoogleOAuthService implements OAuthServiceProvider {
   static final String CONFIG_SUFFIX = "-google-oauth";
   private static final String PROTECTED_RESOURCE_URL =
-  "https://www.googleapis.com/plus/v1/people/me/openIdConnect";
-  private static final String SCOPE = "email profile";
+      "https://www.googleapis.com/userinfo/v2/me";
+  //"https://www.googleapis.com/plus/v1/people/me/openIdConnect";
+  // profile causes username to disappear
+  private static final String SCOPE = "email";
   private final OAuthService service;
 
   @Inject
@@ -84,10 +86,11 @@
       JsonObject jsonObject = userJson.getAsJsonObject();
       JsonElement email = jsonObject.get("email");
       JsonElement name = jsonObject.get("name");
-      JsonElement id = jsonObject.get("sub");
-      return new OAuthUserInfo(id.getAsString(),
-          email.isJsonNull() ? null : email.getAsString(),
-          name.isJsonNull() ? null : name.getAsString());
+      JsonElement id = jsonObject.get("id");
+      return new OAuthUserInfo(id.getAsString() /*externalId*/,
+          name.isJsonNull() ? null : name.getAsString() /*username*/,
+          email.isJsonNull() ? null : email.getAsString() /*email*/,
+	      null /*displayName*/);
     } else {
         throw new IOException(String.format(
             "Invalid JSON '%s': not a JSON Object", userJson));