社交登录是一种功能,用于向站点访客演示使用其Facebook或Twitter帐户登录的选项。 因此,在其AEM会员用户档案中包含允许的Facebook或Twitter数据。
要包含社交登录,创建自定义Facebook和Twitter应用程序时需要**。
尽管we-retail示例提供示例Facebook和Twitter应用程序及云服务,但在生产网站上不提供。
所需步骤包括:
对所有AEM发 布实例启用OAuth身份验证。
未启用OAuth,尝试登录失败。
创 建社交应用程序和云服务。
要支持使用Facebook登录,请执行以下操作:
要支持使用Twitter登录,请执行以下操作:
启 用社 区站点的社交登录。
有两个基本概念:
范围 (权限)指定允许应用程序请求的数据。
Fields (params)指定使用URL参数请求的实际数据。
在Facebook Graph API为1.0版时,开发了社交登录和we-retail Facebook示例。
自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云服务时需要此信息。
通过创建云服务配置实例化的AdobeGranite OAuth应用程序和Provider实例标识Facebook应用程序和新用户所添加的成员组。
在AEM作者实例上,使用管理员权限登录。
在全局导航中,选择工具 > Cloud Services > Facebook Social登录配置。
选择配置上下文路径。
上 下文路径应与您在创建/编辑社区站点时选择的云配置路径相同。
检查您的上下文路径是否已启用以在其下方创建云服务。
转到工具 > 常规 > 配置浏览器。 选择上下文并编辑属性。 如果未启用,请启用云配置。
创建/ 编辑Facebook云服务配置。
可随时添加或删除组。 但现有用户的会员资格不会受到影响。 自动会员资格仅适用于更新此字段后创建的新用户。 对于禁用匿名用户的站点,选择将用户添加到针对该已关闭的社区站点的相应社区成员组。
结果是一个AdobeGranite OAuth应用程序和Provider实例,除非添加其他范围(权限),否则不需要进一步修改。 默认范围是Facebook登录的标准权限。 如果需要其他范围,则需要直接编辑OSGI配置。 如果有修改可直接通过系统/控制台进行,请避免在触屏UI中编辑您的云服务配置以避免覆盖。
AEM Communities提供程序扩展了AdobeGranite OAuth应用程序和提供程序实例。
此提供者需要编辑才能:
允许用户更新
在作用域](#adobe-granite-oauth-application-and-provider)内添加其他字段[
如果需要编辑,请在每个AEM发布实例上:
使用管理员权限登录。
导航到Web控制台。 例如,http://localhost:4503/system/console/configMgr。
找到AEM Communities Facebook OAuth提供者。
选择要打开进行编辑的铅笔图标。
OAuth提供程序ID
(必需)默认值为soco -facebook。 不要编辑。
Cloud Service配置
默认值为 /etc/ cloudservices / facebookconnect
. 不要编辑。
OAuth提供程序服务配置
默认值为 /apps/social/facebookprovider/config/
. 不要编辑。
启用标记
请勿编辑。
用户路径
存储用户数据的存储库中的位置。 对于社区站点,要确保成员能够视图彼此的用户档案,路径应为默认的/home/users/community。
启用字段
如果选中,则在向Facebook发出请求时指定列出的字段,以供用户验证和获取信息。 将取消选择默认值。
字段
启用“字段”后,在调用Facebook Graph 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/将起作用。
创建应用程序后,找到Consumer(API)Key和Consumer(API)Secret。 配置Twitter云服务时需要此信息。
在Twitter应用程序管理的权限部分:
访问:选择 Read only
。
其他权限:(可选)选 Request email addresses from users
择。
对社交登录的唯一REST请求是GET帐户/验证凭据。
通过创建云服务配置实例化的AdobeGranite OAuth应用程序和Provider实例标识Twitter应用程序和新用户所添加的成员组。
在创作实例上,使用管理员权限登录。
在全局导航中,选择工具 > Cloud Services > Twitter社交登录配置。
选择上下文路径配置。
上下文路径应与您在创建/编辑社区站点时选择的云配置路径相同。
检查您的上下文路径是否已启用以在其下方创建云服务。
转到工具 > 常规 > 配置浏览器。 选择上下文并编辑属性。 如果未启用,请启用云配置。
创建/编辑Twitter云服务配置。
标题
(必需)输入标识Twitter应用程序的显示标题。 建议使用与Twitter应用程序的显示名称输入的相同名称。
使用者密钥
(必需)输入Twitter应用程序的消费者(API)密钥。 它标识从对话框创建的AdobeGranite OAuth应用程序和Provider实例。
使用者密钥
(必需)输入Twitter应用程序的Consumer(API)Secret。
创建用户
如果选中此项,则使用Twitter帐户登录将创建AEM用户条目,并将其作为成员添加到所选用户组。 选中默认值(强烈建议)。
隐藏用户 ID
不选。
添加到用户组
选择“添加用户组”,为要向其添加用户的社区站点选择一个或多个成员组。
可随时添加或删除组。 但现有用户的会员资格不会受到影响。 自动会员资格仅适用于更新此字段后创建的新用户。 对于禁用匿名用户的站点,将用户添加到相应的社区成员组,以用于该已关闭的社区站点。
选择SAVE和Publish。
结果是不需要进一步修改的AdobeGranite OAuth应用程序和Provider实例。 默认范围是Twitter登录的标准权限。
AEM Communities配置扩展了AdobeGranite OAuth应用程序和Provider实例。 此提供者需要编辑才能允许用户更新。
如果需要编辑,请在每个AEM发布实例上:
使用管理员权限登录。
导航到Web控制台。
例如,http://localhost:4503/system/console/configMgr。
找到AEM Communities Twitter OAuth提供者。
选择要打开进行编辑的铅笔图标。
(必需)默认值为soco -twitter。 不要编辑。
Cloud Service配置
默认值为conf。 不要编辑。
OAuth提供程序服务配置
默认值为 /apps/social/twitterprovider/config/
. 不要编辑。
用户路径
存储用户数据的存储库中的位置。 对于社区站点,要确保成员能够视图彼此的用户档案,路径应为默认/home/users/community
。
启用 参数不编辑
URL参 数不编辑
更新用户
如果选中,则每次登录时都会刷新存储库中的用户数据,以反映用户档案更改或请求的其他数据。 将取消选择默认值。
Facebook和Twitter的后续步骤相同:
配置云服务后,可在社区站点创建或管理期间使用用户管理设置子面板为社区站点启用相关的社交登录设置。
选择保存社交登录配置的站点配置上下文。
在“常规”选项卡上,设置云配置。
在“设置”选项卡上,启用社交登录并保存。
默认情况下,Adobe Granite OAuth Authentication Handler
未启用,并且必须在所有AEM发布实例上启用。
要在发布时启用身份验证处理程序,只需打开OSGi配置并保存它:
Adobe Granite OAuth Authentication Handler
。请注意,不要将身份验证处理函数与AdobeGranite OAuth应用程序和提供者的Facebook或Twitter实例混淆。
创建Facebook或Twitter的云服务时,将创建Adobe Granite OAuth Authentication Handler
的实例。
要查找Facebook或Twitter应用程序的已创建实例,请执行以下操作:
使用管理员权限登录。
导航到Web控制台。
例如,http://localhost:4503/system/console/configMgr。
找到Adobe Granite OAuth应用程序和提供程序。
找到客户端ID与应用程序ID匹配的实例。
除以下属性外,请保持配置的其他属性不变:
配置ID
(必需)OAuth配置ID必须唯一。 在创建云服务时自动生成。
客户端 ID
(必需)创建云服务时提供的应用程序 ID。
客户端密钥
(必需)创建云服务时提供的应用程序密码。
范围
(可选)可从提供程序询问允许的其他范围。 默认范围涵盖提供社交身份验证和用户档案数据所需的权限。
提供者ID
(必需)创建云服务时,将设置AEM Communities的提供程序ID。 不要编辑。 对于Facebook Connect,此值为soco -facebook。 对于Twitter Connect,该值为soco -twitter。
组
(推荐)一个或多个成员组,已创建用户添加到其中。 对于AEM Communities,建议列表社区站点的成员组。
回调 URL
(可选)配置了OAuth提供者的URL,以重定向客户端返回。 使用相对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
在节点/oak:index/ntBaseLucene-oauth/indexRules/nt:base/properties下:
删除除cqTags外的所有子节点。
将cqTags重命名为oauthid-123​**​**
修改节点oauthid-123​**​**
的属性
oauthid-123​**​**
选择保存全部。
对于名称 oauthid-123
,将123替换为作为客户端ID<a10/的值的Facebook应用程序ID或Twitter消费者(API)密钥>,在AdobeGranite OAuth应用程序和提供程序配置中。
有关其他信息和工具,请参阅Oak查询和索引。
请参阅配置Dispatcher for Communities。