Browse Source

Fix username mapping because discord allows same username.

Need to user "discriminator" for unique username.
pull/1/head
Hiroyuki Wada 6 years ago
parent
commit
cd1b82d39e
  1. 5
      ejb/src/main/java/org/keycloak/social/discord/DiscordIdentityProvider.java

5
ejb/src/main/java/org/keycloak/social/discord/DiscordIdentityProvider.java

@ -65,8 +65,7 @@ public class DiscordIdentityProvider extends AbstractOAuth2IdentityProvider<OAut
protected BrokeredIdentityContext extractIdentityFromProfile(EventBuilder event, JsonNode profile) {
BrokeredIdentityContext user = new BrokeredIdentityContext(getJsonProperty(profile, "id"));
user.setUsername(getJsonProperty(profile, "username"));
// user.setName(getJsonProperty(profile, "username"));
user.setUsername(getJsonProperty(profile, "username") + "#" + getJsonProperty(profile, "discriminator"));
user.setEmail(getJsonProperty(profile, "email"));
user.setIdpConfig(getConfig());
user.setIdp(this);
@ -81,7 +80,7 @@ public class DiscordIdentityProvider extends AbstractOAuth2IdentityProvider<OAut
log.debug("doGetFederatedIdentity()");
try {
JsonNode profile = SimpleHttp.doGet(PROFILE_URL, session).header("Authorization", "Bearer " + accessToken).asJson();
// System.out.println(profile.toString());
return extractIdentityFromProfile(null, profile);
} catch (Exception e) {
throw new IdentityBrokerException("Could not obtain user profile from discord.", e);

Loading…
Cancel
Save