社交登录是一种向网站访客显示使用其Facebook或Twitter帐户登录的选项的功能。 因此,将允许的Facebook或Twitter数据包含在其AEM成员配置文件中。
要包含社交登录,它是 必需 创建自定义Facebook和Twitter应用程序。
虽然we-retail示例提供了示例Facebook和Twitter应用程序及云服务,但它们在 生产网站.
所需步骤包括:
启用OAuth身份验证 在所有AEM发布实例上。
如果未启用OAuth,则登录尝试会失败。
创建 社交应用程序和云服务。
要支持使用Facebook登录,请执行以下操作:
要支持使用Twitter登录,请执行以下操作:
启用 社交登录 社区站点。
有两个基本概念:
范围 (权限)指定允许应用程序请求的数据。
字段 (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 Graph API版本信息,请参阅 facebook API更改日志.
需要正确配置的Facebook应用程序才能启用Facebook社交登录。
要创建Facebook应用程序,请按照Facebook的说明操作,网址为 https://developers.facebook.com/apps/. 对说明所做的更改不会反映在以下信息中。
一般来说,从Facebook API v2.7开始:
https://<server>:<port>.
https://<server>:<port>.
在开发方面,http://localhost:4503将发挥作用。
创建应用程序后,找到 应用程序ID 和 应用程序密钥 设置。 此信息是配置 facebook cloud service.
此 AdobeGranite OAuth应用程序和提供程序 通过创建Cloud Service配置实例化的实例,可标识Facebook应用程序以及添加新用户的成员组。
在AEM创作实例上,使用管理员权限登录。
在全局导航中,选择 工具 > Cloud Services > facebook社交登录配置.
选择配置 上下文路径.
上下文路径 应与您在创建/编辑社区站点时选择的云配置路径相同。
检查是否已启用上下文路径以在其下方创建云服务。
转到 工具 > 常规 > 配置浏览器. 选择上下文并编辑属性。 启用云配置(如果尚未启用)。
创建/编辑 facebook云服务配置。
可以随时添加或删除组。 但现有用户的成员资格不会受到影响。 自动成员资格仅适用于此字段更新后创建的新用户。 对于禁用匿名用户的站点,选择将用户添加到对应于该已关闭社区站点的社区成员组。
结果是 AdobeGranite OAuth应用程序和提供程序 无需进一步修改的实例,除非添加了其他范围(权限)。 默认范围是Facebook登录的标准权限。 如果需要其他范围,则需要直接编辑OSGI配置。 如果直接通过系统/控制台进行了修改,请避免从触屏UI编辑云服务配置以避免覆盖。
AEM Communities提供商对 AdobeGranite OAuth应用程序和提供程序 实例。
此提供程序需要编辑以:
允许用户更新
添加其他字段 在范围内
如果需要进行编辑,请在每个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图形API时将包含以下字段。 这些字段必须允许在云服务配置中定义的作用域内。 其他字段可能需要Facebook批准。 参考Facebook文档的Facebook登录权限部分。 作为参数添加的默认字段包括:
如果添加或更改了任何字段,请更新相应的默认同步处理程序配置以更正映射。
更新用户
如果选中,会在每次登录时刷新存储库中的用户数据,以反映配置文件更改或请求的其他数据。 默认已取消选中。
facebook和Twitter的后续步骤相同:
需要配置的Twitter应用程序才能启用Twitter社交登录。
按照最新说明在处创建新的Twitter应用程序 https://apps.twitter.com.
一般而言:
输入 名称 ,该选项会将您的Twitter应用程序标识给网站用户。
输入 描述.
对象 网站 — 输入 https://<server>
.
对象 回调URL — 输入 https://server
.
无需指定端口。
在开发方面,https://127.0.0.1/将发挥作用。
创建应用程序后,找到 使用者(API)密钥 和 使用者(API)密码. 配置 twitter cloud service.
在Twitter应用程序管理的权限部分中:
访问:选择 Read only
.
其他权限:(可选)选择 Request email addresses from users
.
对社交登录发出的唯一REST请求是 GET帐户/验证凭据.
此 AdobeGranite OAuth应用程序和提供程序 通过创建Cloud Service配置实例化的实例,可标识Twitter应用程序以及添加新用户的成员组。
在创作实例上,使用管理员权限登录。
在全局导航中,选择 工具 > Cloud Services > twitter社交登录配置.
选择 上下文路径 配置。
上下文路径应与您在创建/编辑社区站点时选择的云配置路径相同。
检查是否已启用上下文路径以在其下方创建云服务。
转到 工具 > 常规 > 配置浏览器. 选择上下文并编辑属性。 启用云配置(如果尚未启用)。
创建/编辑Twitter云服务配置。
标题
(必需)输入标识Twitter应用程序的显示标题。 建议使用与输入的相同的名称 显示名称 用于Twitter应用程序。
使用者密钥
(必需)输入 使用者(API)密钥 用于Twitter应用程序。 这样可识别 AdobeGranite OAuth应用程序和提供程序 通过对话框创建的实例。
使用者密钥
(必需)输入 Consumer(API)密码 用于Twitter应用程序。
创建用户
如果选中,使用Twitter帐户登录将创建AEM用户条目,并将其作为成员添加到选定的用户组。 默认选中(强烈推荐)。
隐藏用户 ID
保持取消选中状态。
添加到用户组
选择“添加用户组”以选择一个或多个组 成员组 用户将添加到其中的社区站点。
可以随时添加或删除组。 但现有用户的成员资格不会受到影响。 自动成员资格仅适用于此字段更新后创建的新用户。 对于禁用匿名用户的站点,将用户添加到适用于该已关闭的社区站点的相应社区成员组。
选择 保存 和 Publish.
结果是 AdobeGranite OAuth应用程序和提供程序 无需进一步修改的实例。 默认范围是Twitter登录的标准权限。
AEM Communities配置扩展了 AdobeGranite OAuth应用程序和提供程序 实例。 此提供程序需要编辑,以允许用户更新。
如果需要进行编辑,请在每个AEM发布实例上:
使用管理员权限登录。
导航到 Web控制台.
例如,http://localhost:4503/system/console/configMgr。
找到AEM Communities Twitter OAuth提供程序。
选择铅笔图标以打开进行编辑。
(必需)默认值为 soco -twitter. 不要编辑。
Cloud Service配置
默认值为 会议 不要编辑。
OAuth提供程序服务配置
默认值为 /apps/social/twitterprovider/config/
。不要编辑。
用户路径
存储库中存储用户数据的位置。 对于社区站点,为确保成员有权查看彼此的配置文件,路径应为默认路径 /home/users/community
.
启用参数 不编辑
URL参数 不编辑
更新用户
如果选中,会在每次登录时刷新存储库中的用户数据,以反映配置文件更改或请求的其他数据。 默认值为取消选中。
facebook和Twitter的后续步骤相同:
配置云服务后,可以使用为社区站点的相关社交登录设置启用该服务 User Management 社区站点期间的设置子面板 创建 或 管理.
选择保存社交登录配置的站点配置上下文。
在常规选项卡上,设置云配置。
在设置选项卡上,启用 社交登录 并保存。
此 Adobe Granite OAuth Authentication Handler
默认未启用,并且 必须在所有AEM发布实例上启用。
要在发布时启用身份验证处理程序,只需打开OSGi配置并保存它即可:
Adobe Granite OAuth Authentication Handler
.请注意不要将身份验证处理程序与的Facebook或Twitter实例混淆 AdobeGranite OAuth应用程序和提供程序.
创建Facebook或Twitter的云服务时,实例 Adobe Granite OAuth Authentication Handler
创建。
要找到为Facebook或Twitter应用程序创建的实例,请执行以下操作:
使用管理员权限登录。
导航到 Web控制台.
例如,http://localhost:4503/system/console/configMgr。
找到AdobeGranite 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身份验证处理程序配置,在实例中创建了其他两个配置:
有关更多信息,请参阅 使用Apache Oak外部登录模块进行身份验证.
对于数十万用户使用其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​**​**
选择 全部保存.
对于 name oauthid-123
,替换 123 使用Facebook 应用程序ID 或Twitter 使用者(API)密钥 这就是 客户端ID 在 AdobeGranite OAuth应用程序和提供程序 配置。
有关其他信息和工具,请参阅 Oak查询和索引.
参见 为社区配置Dispatcher.