社交登入是一種功能,可讓網站訪客選擇使用其Facebook或Twitter帳戶登入。 因此,請在其AEM會員個人檔案中加入允許的Facebook或Twitter資料。
若要包含社交登入,建立自訂Facebook和Twitter應用程式時需**。
雖然我們零售的範例提供範例Facebook和Twitter應用程式與雲端服務,但無法在生產網站上使用。
所需步驟包括:
對所有AEM發 布例項啟用OAuth驗證。
未啟用OAuth時,嘗試登入失敗。
建立 社交應用程式和雲端服務。
若要支援使用Facebook登入:
若要支援使用Twitter登入:
啟 用社 群網站的社交登入。
有兩個基本概念:
Scope (權限)會指定應用程式可請求的資料。
Fields (params)指定使用URL參數請求的實際資料。
社交登入和we-retail Facebook範例是在Facebook Graph API 1.0版時開發的。
自AEM 6.4 GA和AEM 6.3 SP1社交登入已更新,可與較新的Facebook Graph API 2.5版本搭配使用。
對於舊版AEM,如果您在記錄中遇到例外情況,請針對該AEM版本升級至最新的CFP。
如需Facebook圖形API版本資訊,請參閱Facebook API changelog。
必須有正確設定的Facebook應用程式,才能啟用Facebook社交登入。
若要建立Facebook應用程式,請依照Facebook在https://developers.facebook.com/apps/的指示進行。 下列資訊不會反映對其指示的變更。
一般而言,自Facebook API v2.7起:
https://<server>:<port>.
https://<server>:<port>.
若要開發,http://localhost:4503將有效。
建立應用程式後,請找出App ID和App Secret設定。 此資訊是設定Facebook雲端服務時的必要資訊。
Adobe Granite OAuth應用程式和Provider例項會透過建立雲端服務組態來實例化,以識別新增使用者的Facebook應用程式和成員群組。
在AEM作者例項上,以管理員權限登入。
在全域導覽中,選取「工具 > 雲端服務 > Facebook Social登入設定」。
選擇配置上下文路徑。
上 下文路徑應與您在建立/編輯社群網站時選取的雲端設定路徑相同。
檢查您的上下文路徑是否已啟用,以在其下方建立雲端服務。
前往「工具 > 一般 > 配置瀏覽器」。 選取您的上下文並編輯屬性。 如果尚未啟用,請啟用雲端設定。
建立/編 輯Facebook雲端服務設定。
您可隨時新增或移除群組。 但現有使用者的會籍不會受到影響。 自動會籍僅適用於在此欄位更新後建立的新使用者。 對於匿名用戶被禁用的站點,選擇將用戶添加到為該封閉社區站點指定的相應社區成員組。
結果會是Adobe Granite OAuth應用程式和Provider執行個體,除非新增其他範圍(權限),否則不需要進一步修改。 預設範圍是Facebook登入的標準權限。 如果需要其他範圍,則需要直接編輯OSGI配置。 如果有修改是透過系統/主控台直接完成,請避免從觸控式使用者介面編輯您的雲端服務設定,以避免覆寫。
AEM Communities提供者會延伸Adobe Granite OAuth應用程式和提供者例項。
此提供者需要編輯才能:
允許使用者更新
在範圍](#adobe-granite-oauth-application-and-provider)內添加其他欄位[
如果需要編輯,請在每個AEM發佈例項上:
以管理員權限登入。
導航至Web控制台。 例如,http://localhost:4503/system/console/configMgr。
尋找AEM Communities Facebook OAuth提供者。
選取要開啟以進行編輯的鉛筆圖示。
OAuth提供者ID
(Required)預設值為soco -facebook。 不要編輯。
雲端服務設定
預設值為 /etc/ cloudservices / facebookconnect
. 不要編輯。
OAuth提供者服務設定
預設值為 /apps/social/facebookprovider/config/
. 不要編輯。
啟用標籤
不要編輯。
使用者路徑
儲存用戶資料的儲存庫中的位置。 對於社群網站,為確保成員有權查看彼此的配置檔案,路徑應為預設的/home/users/community。
啟用欄位
勾選後,列出的欄位會在向Facebook要求使用者驗證和資訊時指定。 預設值為取消選中。
欄位
啟用「欄位」後,呼叫Facebook圖形API時會包含下列欄位。 這些欄位必須允許在雲端服務設定中定義的範圍內。 其他欄位可能需要Facebook核准。 參考Facebook檔案的「Facebook登入權限」區段。 新增為參數的預設欄位為:
如果添加或更改了任何欄位,請更新相應的預設同步處理程式配置以更正映射。
更新使用者
如果選中此選項,則每次登錄時都會刷新儲存庫中的用戶資料,以反映配置檔案更改或請求的其他資料。 已取消選取預設值。
Facebook和Twitter的後續步驟相同:
必須有已設定的Twitter應用程式,才能啟用Twitter社交登入。
請依照最新指示,在https://apps.twitter.com建立新的Twitter應用程式。
一般而言:
輸入名稱,以識別您網站使用者的Twitter應用程式。
輸入說明。
對於website —— 輸入https://<server>
。
對於回呼URL —— 輸入https://server
。
無需指定埠。
若要開發,https://127.0.0.1/將有效。
建立應用程式後,請找出消費者(API)金鑰和消費者(API)密碼。 設定Twitter雲端服務時,將需要此資訊。
在Twitter應用程式管理的權限區段中:
存取:選擇 Read only
。
其他權限:(可選)選 Request email addresses from users
擇。
僅對GET帳戶/verify credentials提出REST登入要求。
Adobe Granite OAuth應用程式和Provider例項會透過建立雲端服務組態來實例化,以識別新增使用者的Twitter應用程式和成員群組。
在作者例項上,以管理員權限登入。
在全域導覽中,選取「工具 > 雲端服務 > Twitter Social登入設定」。
選擇上下文路徑配置。
上下文路徑應與您在建立/編輯社群網站時選取的雲端設定路徑相同。
檢查您的上下文路徑是否已啟用,以在其下方建立雲端服務。
前往「工具 > 一般 > 配置瀏覽器」。 選取您的上下文並編輯屬性。 如果尚未啟用,請啟用雲端設定。
建立/編輯Twitter雲端服務設定。
標題
(必要)輸入識別Twitter應用程式的顯示標題。 建議您為Twitter應用程式使用與顯示名稱所輸入的相同名稱。
消費者金鑰
(必要)輸入Twitter應用程式的消費者(API)金鑰。 這會識別從對話方塊建立的Adobe Granite OAuth應用程式和Provider例項。
消費者機密
(必要)輸入Twitter應用程式的消費者(API)密碼。
建立使用者
如果勾選,使用Twitter帳戶登入將建立AEM使用者項目,並將其新增為所選使用者群組的成員。 已勾選預設值(強烈建議)。
隱藏使用者 ID
保持未選定狀態。
新增到使用者群組
選擇「添加用戶組」,為將添加用戶的社區站點選擇一個或多個成員組。
您可隨時新增或移除群組。 但現有使用者的會籍不會受到影響。 自動會籍僅適用於在此欄位更新後建立的新使用者。 對於匿名使用者被停用的網站,請將使用者新增至該封閉社群網站的對應社群成員群組。
選擇SAVE和Publish。
結果是不需要進一步修改的Adobe Granite OAuth應用程式和Provider例項。 預設範圍是Twitter登入的標準權限。
AEM Communities設定會延伸Adobe Granite OAuth應用程式和Provider例項。 此提供者需要編輯才能允許使用者更新。
如果需要編輯,請在每個AEM發佈例項上:
以管理員權限登入。
導航至Web控制台。
例如,http://localhost:4503/system/console/configMgr。
尋找AEM Communities Twitter的OAuth提供者。
選取要開啟以進行編輯的鉛筆圖示。
(必要)預設值為soco -twitter。 不要編輯。
雲端服務設定
預設值為conf。 不要編輯。
OAuth提供者服務設定
預設值為/apps/social/twitterprovider/config/
。 不要編輯。
使用者路徑
儲存用戶資料的儲存庫中的位置。 對於社群站點,為確保成員有權查看彼此的配置檔案,路徑應為預設/home/users/community
。
啟用 參數不編輯
URL參 數不編輯
更新使用者
如果選中此選項,則每次登錄時都會刷新儲存庫中的用戶資料,以反映配置檔案更改或請求的其他資料。 預設值為取消選中。
Facebook和Twitter的後續步驟相同:
一旦配置了雲服務,在社區站點建立或 管理期間,可使用用戶管理設定子面板為社區站點啟用相關的社交登錄設定。
選擇您儲存社交登入設定的網站設定內容。
在「一般」標籤上,設定雲端設定。
在「設定」標籤上,啟用社交登入並儲存。
預設未啟用Adobe Granite OAuth Authentication Handler
,且必須在所有AEM發佈例項上啟用。
若要在發佈時啟用驗證處理常式,只要開啟OSGi組態並儲存它:
Adobe Granite OAuth Authentication Handler
。請小心不要將驗證處理常式與Adobe Granite OAuth應用程式與Provider的Facebook或Twitter例項混淆。
建立Facebook或Twitter的雲端服務時,會建立Adobe Granite OAuth Authentication Handler
例項。
若要尋找Facebook或Twitter應用程式的已建立例項:
以管理員權限登入。
導航至Web控制台。
例如,http://localhost:4503/system/console/configMgr。
找到Adobe Granite OAuth應用程式和供應商。
找到Client ID符合App ID的例項。
除了下列屬性外,請保留組態的其他屬性不變:
設定ID
(必要)OAuth組態ID必須是唯一的。 在建立雲端服務時自動產生。
用戶端識別碼
(必要)建立雲端服務時提供的應用程式ID。
用戶端密碼
(必要)建立雲端服務時提供的應用程式密碼。
範圍
(可選)供應商可詢問允許的額外範圍。 預設範圍涵蓋提供社交驗證和個人檔案資料的必要權限。
提供者ID
(必要)建立雲端服務時,會設定AEM Communities的提供者ID。 不要編輯。 對於Facebook Connect,值為soco -facebook。 對於Twitter Connect,該值為soco -twitter。
群組
(Recommended)新增已建立使用者的一或多個成員群組。 對於AEM Communities,建議列出社群網站的成員群組。
回呼 URL
(可選)URL,OAuth提供者已設定為將用戶端重新導向回原始位置。 使用相對URL來使用原始請求的主機。 留空可改用原本要求的URL。 尾碼"/callback/j_security_check"會自動附加到此URL。
回呼的網域必須向提供者(Facebook或Twitter)註冊。
對於每個OAuth驗證處理常式設定,例項中會另外建立兩個組態:
如需詳細資訊,請參閱Authentication with Apache Oak External Login Module。
對於使用Facebook或Twitter登入功能註冊的社群網站,當網站訪客使用其社交登入功能時,可新增下列Oak索引來改善查詢的周遊效能。
如果日誌中出現遍歷警告,建議添加此索引。
在作者例項上,以管理權限登入:
從全域導覽:選擇工具, CRX/DE Lite。
從ntBaseLucene的副本建立名為ntBaseLucene-oauth的索引:
/oak:index
下ntBaseLucene
/oak:index
ntBaseLucene-oauth
修改node ntBaseLucene-oauth的屬性:
/oak:index/ntBaseLucene-oauth
oauthid-123​**​**
true
1
在node /oak:index/ntBaseLucene-oauth/indexRules/nt:base/properties下:
刪除所有子節點,cqTags除外。
將cqTags重新命名為oauthid-123​**​**
修改節點oauthid-123​**​**
的屬性
oauthid-123​**​**
選擇全部保存。
對於名稱 oauthid-123
,請將123取代為Facebook 應用程式ID或Twitter 消費者(API)金鑰,此金鑰是客戶ID,在Adobe Granite OAuth應用程式和提供者組態中。
有關其他資訊和工具,請參閱Oak Queries and Indexing。