Ich benutze IdentityServer4 mit Net Core. Ich kann mit Google, Facebook, Twitter, LinkedIn und Microsoft authentifizieren, aber jetzt möchte ich das Profilbild des Benutzers den externen Anbieter erhalten. Ich verwende einen Client mit GrantTypes.Implicit und haben versucht, eine neue IdentityResource Zugabe wie folgt:Wie bekomme ich Profilbilder von externen Providern mit identityserver4?
new IdentityResource {
Name = "picture",
UserClaims = new List<string> {"picture" }
}
Ich habe dann „Bild“ als erlaubtes Rahmen für meine Kunden. Dies ist alles nur ein Schuss in die Dunkelheit, während ich immer noch versuche, meinen Kopf um Identitätsressourcen und erlaubte Bereiche zu wickeln.
Da ich bin sehr neu zu identityserver4, sei freundlich und werde so detailliert wie möglich. Danke im Voraus!
Ich habe die "Profil" -Ressource hinzugefügt und kann den Namen des Benutzers, E-Mail-Adresse und URL-Profil erhalten, kann aber nicht das Bild bekommen. Es ist nicht in den Ansprüchen zurück von Google enthalten. In meiner ExternalLoginCallback-Methode habe ich folgendes: 'var email = info.Principal.FindFirstValue (ClaimTypes.Email); var picture = info.Principal.FindFirstValue ("Bild"); ' Die E-Mail wird zurückgegeben, aber nicht das Bild. – 206mph
info.Principal.Claims.Where (x => x.Type == "Bild"). Wählen Sie (x => x.Value) .FirstOrDefault() –
Das ist das gleiche wie die Verwendung des FindFirstValue. Leider enthalten die Ansprüche nicht das Bild. Ich bin mir nicht sicher, warum nicht. Muss ich irgendetwas mit dem GoogleOptions-Objekt tun, um Google anzuweisen, das Bild aufzunehmen? Ich dachte 'new IdentityResources.Profile()' in der Liste der identityresources ist alles was benötigt wird, aber anscheinend nicht. – 206mph