社交登录是向网站访客展示使用其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云服务.
此 AdobeGranite OAuth应用程序和提供程序 通过创建Cloud Service配置实例化的实例,可识别Facebook应用程序以及向其中添加新用户的成员组。
在AEM创作实例上,使用管理员权限登录。
在全局导航中,选择 工具 > Cloud Service > 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云服务.
在Twitter应用程序管理的权限部分中:
访问:选择 Read only
.
其他权限:(可选)选择 Request email addresses from users
.
对社交登录发出的唯一REST请求是 GET帐户/验证凭据.
此 AdobeGranite OAuth应用程序和提供程序 实例通过创建Cloud Service配置进行实例化,用于标识添加新用户的Twitter应用程序和成员组。
在创作实例上,使用管理员权限登录。
在全局导航中,选择 工具 > Cloud Service > twitter社交登录配置.
选择 上下文路径 配置。
上下文路径应与您在创建/编辑社区站点时选择的云配置路径相同。
检查是否已启用上下文路径以在其下方创建云服务。
转到 工具 > 常规 > 配置浏览器. 选择上下文并编辑属性。 启用云配置(如果尚未启用)。
创建/编辑Twitter云服务配置。
标题
(必填)输入用于标识Twitter应用程序的显示标题。 使用与输入的相同的名称 显示名称 用于Twitter应用程序。
使用者密钥
(必填)输入 使用者(API)密钥 用于Twitter应用程序。 这标识了 AdobeGranite OAuth应用程序和提供程序 通过对话框创建的实例。
使用者密钥
(必填)输入 使用者(API)密码 用于Twitter应用程序。
创建用户
如果选中,使用Twitter帐户登录将创建AEM用户条目,并将其作为成员添加到选定的用户组。 默认处于选中状态(强烈推荐)。
隐藏用户 ID
保持取消选中状态。
添加到用户组
选择“添加用户组”以选择一个或多个 成员组 用于要向其添加用户的社区站点。
可以随时添加或删除组。 但现有用户的成员资格不会受到影响。 自动成员资格仅适用于此字段更新后创建的新用户。 对于禁用匿名用户的站点,将用户添加到对应于该已关闭社区站点的社区成员组。
选择 保存 和 Publish.
结果是 AdobeGranite OAuth应用程序和提供程序 无需进一步修改的实例。 默认范围是Twitter登录的标准权限。
AEM Communities配置对 AdobeGranite OAuth应用程序和提供程序 实例。 此提供程序需要编辑才能允许用户更新。
如果需要进行编辑,请在每个AEM发布实例上:
使用管理员权限登录。
导航至 Web控制台.
例如,http://localhost:4503/system/console/configMgr。
找到AEM CommunitiesTwitterOAuth提供程序。
选择铅笔图标以打开进行编辑。
(必填)默认值为 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连接,值为 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.