Social inloggning med Facebook och Twitter social-login-with-facebook-and-twitter

Inloggning via sociala medier är en funktion för att ge en besökare möjlighet att logga in med sitt Facebook- eller Twitter-konto. Därför bör du inkludera tillåtna Facebook- eller Twitter-data i deras AEM medlemsprofil.

socialloginweretail

Översikt över social inloggning social-login-overview

Om du vill inkludera social inloggning är det obligatoriskt att skapa anpassade Facebook- och Twitter-program.

Vi-exemplet innehåller exempel på Facebook- och Twitter-appar samt molntjänster, men de är inte tillgängliga på en produktionswebbplats.

De steg som krävs är:

  1. Aktivera OAuth-autentisering för alla AEM publiceringsinstanser.

    Om OAuth inte är aktiverat misslyckas inloggningsförsöken.

  2. Skapa en social app och en molntjänst.

  3. Aktivera social inloggning för en community-webbplats.

Det finns två grundläggande begrepp:

  1. Scope (behörigheter) anger vilka data som programmet kan begära.

  2. Fält (parametrar) anger aktuella data som begärts med URL-parametrar.

Facebook Login facebook-login

Facebook API-version facebook-api-version

Samtidig inloggning och Facebook-exemplet för webbförsäljning utvecklades när Facebook Graph API var version 1.0.
Från och med AEM 6.4 GA och AEM 6.3 SP1 uppdaterades den sociala inloggningen för att fungera med den nyare Facebook Graph API 2.5-versionen.

NOTE
För äldre AEM versioner, om du råkar ut för ett undantag i loggarna Det går inte att extrahera en token från, uppgradera till den senaste bestrukna versionen för den AEM.

Versionsinformation om Facebook Graph API finns i Facebook API-ändringsloggen.

Skapa en Facebook-app create-a-facebook-app

Ett korrekt konfigurerat Facebook-program krävs för att aktivera Facebook inloggning för sociala medier.

Följ Facebook instruktioner på https://developers.facebook.com/apps/ om du vill skapa ett Facebook-program. Ändringar av instruktionerna återspeglas inte i följande information.

Från och med Facebook API v2.7:

  • Lägg till en ny Facebook-app

    • Välj Webbplats för Plattform:

      • Ange https://<server>:<port>. för webbplats-URL
      • För Visningsnamn anger du en titel som ska användas som titel för Facebook-anslutningstjänsten.
      • För kategori rekommenderar vi att du väljer Appar för sidor, men det kan vara vad som helst.
      • Lägg till produkt: Facebook-inloggning
      • Ange https://<server>:<port>. för giltiga omdirigerings-URI:er för OAuth
NOTE
http://localhost:4503 fungerar för utveckling.

Leta reda på inställningarna för App ID och App Secret när programmet har skapats. Den här informationen krävs för att konfigurera molntjänsten Facebook.

Skapa en Facebook Connect-Cloud Service create-a-facebook-connect-cloud-service

Instansen Adobe Granite OAuth Application och Provider, som initieras genom att en molntjänstkonfiguration skapas, identifierar Facebook-programmet och medlemsgrupperna som de nya användarna läggs till i.

  1. Logga in med administratörsbehörighet på AEM författarinstans.

  2. Välj Tools > Cloud Services > Facebook Social login configuration från global navigering.

  3. Välj konfigurationen context path.

    Context path ska vara samma som molnkonfigurationssökvägen som du har valt när du skapar/redigerar en community-plats.

  4. Kontrollera om din kontextsökväg är aktiverad för att skapa molntjänster under den.

  5. Gå till Tools > General > Configuration Browser. Välj kontext och redigera egenskaper. Aktivera molnkonfigurationer om de inte har aktiverats ännu.

    config-properties

  6. Skapa/redigera Facebook molntjänstkonfiguration.

    fbsocialloginconfigpng

    • Title (Required) Ange en visningsrubrik som identifierar Facebook App. Använd samma namn som anges som visningsnamn för Facebook-programmet.
    • App ID/API Key (Required) Ange program-ID för Facebook App. Detta identifierar instansen Adobe Granite OAuth Application och Provider som skapats från dialogrutan.
    • App Secret (Required) Ange apphemlighet för Facebook App.
    • Create Users Om det här alternativet är markerat skapas en AEM användarpost och läggs till som medlem i de valda användargrupperna när du loggar in med ett Facebook-konto. Standard är markerat (rekommenderas starkt).
    • Mask User IDs: Låt vara avmarkerat.
    • Scope Email: användarens e-post-ID ska hämtas från Facebook.
    • Add to User Groups Välj Lägg till användargrupp om du vill välja en eller flera medlemsgrupper för den community som användarna ska läggas till i.
    note note
    NOTE
    Grupper kan läggas till eller tas bort när som helst. Men befintliga användares medlemskap påverkas inte. Automatiskt medlemskap gäller endast för nya användare som skapas efter den här fältuppdateringen. För webbplatser där anonyma användare är inaktiverade väljer du att lägga till användare i motsvarande community-medlemsgrupp som är avsedd för den stängda communitywebbplatsen.
    • Välj SAVE.
    • Publish.

Resultatet är en Adobe Granite OAuth-programinstans och Provider som inte behöver ändras ytterligare om inte ytterligare scope (behörigheter) läggs till. Standardomfånget är standardbehörigheten för Facebook-inloggning. Om ytterligare omfattning önskas är det nödvändigt att redigera OSGI-konfigurationen direkt. Om ändringar görs direkt via system/konsol ska du undvika att redigera molntjänstkonfigurationerna från pekgränssnittet för att undvika att skriva över dem.

AEM Communities Facebook OAuth Provider aem-communities-facebook-oauth-provider

AEM Communities-providern utökar instansen Adobe Granite OAuth Application och Provider.

Den här providern behöver redigeras för att:

  • Tillåt användaruppdateringar

  • Lägg till ytterligare fält inom omfånget

    • Alla fält som tillåts som standard inkluderas inte som standard.

Om redigering är nödvändig, för varje AEM publiceringsinstans:

  1. Logga in med administratörsbehörighet.

  2. Navigera till webbkonsolen. Exempel: http://localhost:4503/system/console/configMgr.

  3. Hitta AEM Communities Facebook OAuth Provider.

  4. Markera pennikonen som du vill öppna för redigering.

    fboauthprov_png

    • OAuth Provider ID

      (Obligatoriskt) Standardvärdet är soco -facebook. Redigera inte.

    • Cloud Service Config

      Standardvärdet är /etc/ cloudservices / facebookconnect. Redigera inte.

    • OAuth Provider Service Config

      Standardvärdet är /apps/social/facebookprovider/config/. Redigera inte.

    • Enable Tags

      Redigera inte.

    • User Path

      Plats i databasen där användardata lagras. För en communitywebbplats bör sökvägen vara /home/users/community för att säkerställa behörighet för medlemmar att visa varandras profil.

    • Enable fields

      Om du markerar det här alternativet anges fälten i listan på begäran till Facebook för användarautentisering och användarinformation. Standardvärdet är avmarkerat.

    • Fields

      När fält är aktiverade inkluderas följande fält när du anropar Facebook Graph API. Fälten måste vara tillåtna inom det omfång som definieras i molntjänstkonfigurationen. Ytterligare fält kan behöva godkännas av Facebook. Se avsnittet Facebook inloggningsbehörigheter i Facebook-dokumentationen. Standardfälten som läggs till som parametrar är:

      • id
      • name
      • first_name
      • last_name
      • link
      • locale
      • bild
      • tidszon
      • uppdaterad_tid
      • verifierad
      • e-post

    Om något fält läggs till eller ändras, uppdaterar du motsvarande standardkonfiguration för synkroniseringshanteraren för att korrigera mappningen.

    • Update User

      Om du markerar det här alternativet uppdateras användardata i databasen vid varje inloggning så att profiländringar eller ytterligare data som efterfrågas återspeglas. Standard är avmarkerat.

Nästa steg next-steps

Nästa steg är samma för både Facebook och Twitter:

Inloggning för twitter twitter-login

Skapa en Twitter-app create-a-twitter-app

Det krävs ett konfigurerat program för Twitter för att aktivera Twitternas inloggning för sociala medier.

Följ de senaste instruktionerna för att skapa ett Twitter-program på https://apps.twitter.com.

I allmänhet:

  1. Ange ett namn som identifierar ditt Twitter-program för webbplatsens användare.

  2. Ange en beskrivning.

  3. För webbplats - ange https://<server>.

  4. För Återanrops-URL - ange https://server.

    note note
    NOTE
    Porten behöver inte anges.
    https://127.0.0.1/ fungerar för utveckling.
  5. När programmet har skapats letar du reda på Consumer (API) Key och Consumer (API) Secret. Den här informationen behövs för att konfigurera molntjänsten Twitter.

Behörigheter permissions

I Twitternas behörighetsavsnittet:

  • Access: Välj Read only.

    • Andra alternativ stöds inte
  • Additional Permissions: Välj Request email addresses from users om du vill.

    • Om du inte väljer det här alternativet inkluderas inte AEM e-postadress.
    • Twitternas instruktioner innehåller information om ytterligare steg som ska utföras.

Den enda REST-begäran som har gjorts för social inloggning är GET-konto/verifiera autentiseringsuppgifter.

Skapa en Twitter Connect-Cloud Service create-a-twitter-connect-cloud-service

OAuth-programmet och providern🔗 för Adobe Granite, som initieras genom att en molntjänstkonfiguration skapas, identifierar Twitterna och medlemsgrupperna som de nya användarna läggs till i.

  1. Logga in med administratörsbehörighet på författarinstansen.

  2. Välj Tools > Cloud Services > Twitter Social login configuration från global navigering.

  3. Välj context path-konfigurationen.

    Kontextsökvägen ska vara samma som den molnkonfigurationssökväg som du valde när du skapade/redigerade en community-plats.

  4. Kontrollera om din kontextsökväg är aktiverad för att skapa molntjänster under den.

  5. Gå till Tools > General > Configuration Browser. Välj kontext och redigera egenskaper. Aktivera molnkonfigurationer om de inte har aktiverats ännu.

    twitterconfigprop

  6. Skapa/redigera molntjänstkonfiguration för Twitter.

    twittersociallopng

    • Title

      (Obligatoriskt) Ange en visningsrubrik som identifierar Twitter App. Använd samma namn som anges som visningsnamn för Twitter-programmet.

    • Consumer Key

      (Obligatorisk) Ange API-nyckeln för Twitterna. Detta identifierar instansen Adobe Granite OAuth Application och Provider som skapats från dialogrutan.

    • Consumer Secret

      (Obligatoriskt) Ange API-hemlighet för Twitter App.

    • Create Users

      Om du markerar det här alternativet skapas en AEM användarpost och läggs till som medlem i de markerade användargrupperna när du loggar in med ett användarkonto. Standard är markerat (rekommenderas starkt).

    • Mask User IDs

      Låt vara avmarkerat.

    • Add to User Groups

      Välj Lägg till användargrupp om du vill välja en eller flera medlemsgrupper för den community som användarna ska läggas till i.

    note note
    NOTE
    Grupper kan läggas till eller tas bort när som helst. Befintliga användarmedlemskap påverkas dock inte. Automatiskt medlemskap gäller endast för nya användare som skapas efter den här fältuppdateringen. För webbplatser där anonyma användare är inaktiverade lägger du till användare i motsvarande community-medlemsgrupp som är avsedd för den stängda communitywebbplatsen.
  7. Välj SAVE och Publish.

Resultatet är en Adobe Granite OAuth-programinstans och Provider som inte behöver ändras ytterligare. Standardomfånget är standardbehörigheten för Twitternas inloggning.

AEM Communities Twitter OAuth Provider aem-communities-twitter-oauth-provider

AEM Communities-konfigurationen utökar instansen Adobe Granite OAuth Application och Provider. Leverantören måste redigeras för att tillåta användaruppdateringar.

Om redigering är nödvändig, för varje AEM publiceringsinstans:

  1. Logga in med administratörsbehörighet.

  2. Navigera till webbkonsolen.

    Exempel: http://localhost:4503/system/console/configMgr.

  3. Hitta AEM Communities Twitter OAuth Provider.

  4. Markera pennikonen som du vill öppna för redigering.

    twitteroauth_png

    • OAuth Provider ID

    (Obligatoriskt) Standardvärdet är soco-twitter. Redigera inte.

    • Cloud Service Config

      Standardvärdet är conf. Redigera inte.

    • OAuth Provider Service Config

      Standardvärdet är /apps/social/twitterprovider/config/. Redigera inte.

    • User Path

      Plats i databasen där användardata lagras. För en communitywebbplats bör sökvägen vara /home/users/community som standard för att medlemmarna ska kunna se varandras profiler.

    • Enable Params - redigera inte

    • URL Parameters - redigera inte

    • Update User

      Om du markerar det här alternativet uppdateras användardata i databasen vid varje inloggning så att profiländringar eller ytterligare data som efterfrågas återspeglas. Standardvärdet är avmarkerat.

Nästa steg next-steps-1

Nästa steg är samma för både Facebook och Twitter:

Aktivera social inloggning enable-social-login

AEM Communities Sites Console aem-communities-sites-console

När en molntjänst har konfigurerats kan den aktiveras för den relevanta inställningen för social inloggning för en community-webbplats med underpanelen Inställningar för användarhantering när communitywebbplatsen skapas eller hanteras.

  1. Välj den platskonfiguration där du sparade dina konfigurationer för social inloggning.

  2. Ange molnkonfigurationer på fliken Allmänt.

    managesites_png

  3. Aktivera Social Logins och Spara på fliken Inställningar.

    usermgmt_png

Testa social inloggning test-social-login

  • Kontrollera att Adobe Granite OAuth-autentiseringshanterare har aktiverats för alla publiceringsinstanser.
  • Kontrollera att molntjänsterna har publicerats.
  • Kontrollera att communitywebbplatsen har publicerats.
  • Starta den publicerade webbplatsen i en webbläsare.
    Till exempel http://localhost:4503/content/sites/engage/en.html
  • Välj Login In.
  • Välj antingen Sign in with Facebook eller Sign in with Twitter.
  • Om du inte redan är inloggad på Facebook eller Twitter loggar du in med rätt autentiseringsuppgifter.
  • Det kan vara nödvändigt att bevilja behörighet beroende på vilken dialogruta som visas i Facebook- eller Twitter-appen.
  • Observera att verktygsfältet högst upp på sidan uppdateras för att återspegla den lyckade inloggningen.
  • Välj Profile: På profilsidan visas användarens avatarbild, förnamn och efternamn. Den visar även information från Facebook- eller Twitter-profilen enligt tillåtna fält/parametrar.

OAuth-konfigurationer för AEM aem-platform-oauth-configurations

Adobe Granite OAuth-autentiseringshanterare adobe-granite-oauth-authentication-handler

Adobe Granite OAuth Authentication Handler är inte aktiverat som standard och måste aktiveras för alla AEM publiceringsinstanser.

Aktivera autentiseringshanteraren vid publicering genom att öppna OSGi-konfigurationen och spara den:

  • Logga in med administratörsbehörighet.
  • Navigera till webbkonsolen.
    Till exempel http://localhost:4503/system/console/configMgr
  • Sök efter Adobe Granite OAuth Authentication Handler.
  • Välj att öppna konfigurationen för redigering.
  • Välj Save.

graniteoauth

CAUTION
Förväxla inte autentiseringshanteraren med en Facebook- eller Twitter-instans av Adobe Granite OAuth-programmet och providern.

graniteoauth1

Adobe Granite OAuth-program och -leverantör adobe-granite-oauth-application-and-provider

När en molntjänst för Facebook eller Twitter skapas skapas en instans av Adobe Granite OAuth Authentication Handler.

Så här söker du efter den skapade instansen för ett Facebook- eller Twitter-program:

  1. Logga in med administratörsbehörighet.

  2. Navigera till webbkonsolen.

    Exempel: http://localhost:4503/system/console/configMgr.

  3. Hitta Adobe Granite OAuth-program och -provider.

    • Leta reda på instansen där Client ID matchar App ID.

      graniteoauth2

      Utom följande egenskaper lämnar du de andra egenskaperna i konfigurationen oförändrade:

    • Config ID

      (Required) OAuth-konfigurations-ID:n måste vara unika. Autogenereras när molntjänsten skapas.

    • Client ID

      (Obligatoriskt) Program-ID:t som tillhandahölls när molntjänsten skapades.

    • Client Secret

      (Obligatorisk) Programhemligheten som angavs när molntjänsten skapades.

    • Scope

      (Valfritt) Ytterligare omfång för vad som tillåts kan tillfrågas från providern. Standardomfånget omfattar de behörigheter som krävs för att tillhandahålla social autentisering och profildata.

    • Provider ID

      (Obligatoriskt) Provider-ID för AEM Communities anges när molntjänsten skapades. Redigera inte. För Facebook Connect är värdet soco-facebook. För Twitter Connect är värdet soco-twitter.

    • Groups

      (Rekommenderas) En eller flera medlemsgrupper som användare har skapats i läggs till. För AEM Communities rekommenderar vi att du listar medlemsgruppen för communitywebbplatsen.

    • Callback URL

      (Valfri) URL konfigurerad med OAuth-providers för omdirigering av klienten. Använd en relativ URL för att använda värddatorn för den ursprungliga begäran. Lämna tomt om du vill använda den ursprungligen begärda URL:en i stället. Suffixet"/callback/j_security_check" läggs automatiskt till på den här URL:en.

    note note
    NOTE
    Domänen för återanropet måste vara registrerad hos providern (Facebook eller Twitter).

För varje konfiguration av OAuth-autentiseringshanterare skapas ytterligare två konfigurationer i instansen:

  • Apache Jackrabbit Oak standardhanterare för synkronisering (org.apache.jackrabbit.oak.spi.security.authentication.external.impl.DefaultSyncHandler) - Inga redigeringar krävs, men du kan se hur Facebook-fält mappas till en CQ-användarprofilnod i användarfältet. Lägg även märke till att Sync Handler Name matchar Config Id för OAuth-providerkonfigurationen.
  • Apache Jackrabbit Oak External Login Module (org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalLoginModuleFactory) - Inga redigeringar krävs, men du kan lägga märke till att Identity Provider Name och Sync Handler Name är samma och pekar på motsvarande OAuth- respektive synkhanterarkonfigurationer.

Mer information finns i Autentisering med Apache Oak External Login Module.

OAuth User Traversal Performance oauth-user-traversal-performance

För communitysajter där hundratusentals användare registrerar sig med hjälp av inloggning för Facebook eller Twitter kan genomgången av den fråga som utfördes när en besökare använder sin inloggning för sociala medier förbättras genom att följande Oak-index läggs till.

Om traversal-varningar visas i loggarna bör du lägga till det här indexet.

Inloggad med administratörsbehörighet för en författarinstans:

  1. Från global navigering: välj Verktyg, CRX/DE Lite.

  2. Skapa ett index med namnet ntBaseLucene-oauth från en kopia av ntBaseLucene:

    • Under nod /oak:index
    • Välj nod ntBaseLucene
    • Välj Copy
    • Välj /oak:index
    • Välj Paste
    • Byt namn på kopia av ntBaseLucene till ntBaseLucene-oauth
  3. Ändra egenskaperna för noden ntBaseLucene-oauth:

    • indexPath: /oak:index/ntBaseLucene-oauth
    • name: oauthid-123&#x200B;**&#x200B;**
    • reindex: true
    • reindexCount: 1
  4. Under noden /oak:index/ntBaseLucene-oauth/indexRules/nt:base/properties:

    • Ta bort alla underordnade noder, förutom cqTags.

    • Byt namn på cqTags till oauthid-123**&#x200B;**

    • Ändra egenskaperna för noden oauthid-123**&#x200B;**

      • name: oauthid-123&#x200B;**&#x200B;**
    • Välj Save All.

Mer information och verktyg finns i Oak-frågor och indexering.

Dispatcher Configuration dispatcher-configuration

Se Konfigurera Dispatcher för Communities.

recommendation-more-help
81e2cd9d-0789-409d-b87c-2a8ce4f28791