社交登录功能可向网站访客展示使用其Facebook或Twitter帐户登录的选项。 因此,请在其AEM成员配置文件中包含允许的Facebook或Twitter数据。
社交登录概述
要包含社交登录,创建自定义Facebook和Twitter应用程序时需要**。
虽然we-retail示例提供了示例Facebook和Twitter应用程序及云服务,但它们在生产网站上不可用。
所需的步骤包括:
- 在所有AEM 发布实例上启用OAuth身份验证。 未启用OAuth时,尝试登录失败。 创建社交应用程序和云服务。 要支持使用Facebook登录,请执行以下操作: 创建Facebook应用程序。 创建并发布Facebook Connect云服务。 要支持使用Twitter登录,请执行以下操作: 创建Twitter应用程序。 创建并发布Twitter Connect云服务。 为社区 站点启用Social登录。
有两个基本概念:
- 范围 (权限)指定允许应用程序请求的数据。 默认情况下,Facebook和Twitter AdobeGranite OAuth应用程序和提供程序实例在其范围内包含基本的应用程序权限。 字段 (参数)指定使用URL参数请求的实际数据。 这些字段在AEM Communities Facebook OAuth提供程序和AEM Communities Twitter OAuth提供程序中指定。 对于大多数用例,默认字段已足够,但可以修改。
Facebook登录
Facebook API版本
Social登录和we-retail Facebook示例是在Facebook图形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应用程序,请按照Facebook在https://developers.facebook.com/apps/中的说明操作。 以下信息未反映对其说明所做的更改。
一般情况下,自Facebook API v2.7起:
https://<server>:<port>.
https://<server>:<port>.
注意 对于开发, http://localhost:4503将有效。
创建应用程序后,找到应用程序ID和应用程序密钥设置。 配置Facebook云服务时需要此信息。
创建Facebook ConnectCloud Service
Adobe的Granite OAuth应用程序和提供程序实例(通过创建云服务配置进行实例化)可标识将新用户添加到的Facebook应用程序和成员组。
结果会生成一个Adobe的Granite OAuth应用程序和提供程序实例,除非添加其他范围(权限),否则无需进一步修改。 默认范围是Facebook登录的标准权限。 如果需要其他范围,则需要直接编辑OSGI配置。 如果有修改是直接通过系统/控制台完成的,请避免从触屏UI编辑云服务配置以避免覆盖。
AEM Communities Facebook OAuth提供程序
AEM Communities提供程序扩展AdobeGranite OAuth应用程序和提供程序实例。
此提供程序将需要编辑以:
- 允许用户更新 在范围🔗内添加其他字段 默认情况下,并非包含所有默认允许的字段。
如果需要编辑,请在每个AEM发布实例上:
/etc/ cloudservices / facebookconnect
/apps/social/facebookprovider/config/
后续步骤
facebook和Twitter的后续步骤相同:
- 发布云服务配置 为社区站点启用
Twitter登录
创建Twitter应用程序
需要配置的Twitter应用程序才能启用Twitter社交登录。
按照最新说明,在https://apps.twitter.com创建新的Twitter应用程序。
一般而言:
https://<server>
https://server
权限
在Twitter应用程序管理的权限部分:
Read only
Request email addresses from users
对社交登录的唯一REST请求是GET帐户/验证凭据。
创建Twitter ConnectCloud Service
Adobe的Granite OAuth应用程序和提供程序实例(通过创建云服务配置进行实例化)可标识将新用户添加到的Twitter应用程序和成员组。
结果会生成一个Adobe的Granite OAuth应用程序和Provider实例,该实例不需要进一步修改。 默认范围是Twitter登录的标准权限。
AEM Communities Twitter OAuth提供程序
AEM Communities配置扩展了AdobeGranite OAuth应用程序和Provider实例。 此提供程序将需要编辑才能允许用户更新。
如果需要编辑,请在每个AEM发布实例上:
/apps/social/twitterprovider/config/
/home/users/community
后续步骤
facebook和Twitter的后续步骤相同:
- 发布云服务配置 为社区站点启用
启用社交登录
AEM Communities站点控制台
配置云服务后,可以使用社区站点创建或管理期间的用户管理设置子面板为社区站点启用相关的社交登录设置。
测试社交登录
- 确保在所有发布实例上启用了AdobeGranite OAuth身份验证处理程序。 确保云服务已发布。 确保社区站点已发布。 在浏览器中启动已发布的网站。 例如, http://localhost:4503/content/sites/engage/en.html 选择登录。 选择使用Facebook登录或使用Twitter登录。 如果尚未登录Facebook或Twitter,请使用相应的凭据登录。 可能需要授予权限,具体取决于Facebook或Twitter应用程序显示的对话框。 请注意,页面顶部的工具栏已更新,以反映成功登录。 选择配置文件:用户档案页面显示用户的头像图像、名字和姓氏。 它还会根据允许的字段/参数显示Facebook或Twitter配置文件中的信息。
AEM Platform OAuth配置
AdobeGranite OAuth身份验证处理程序
Adobe Granite OAuth Authentication Handler
要在发布时启用身份验证处理程序,只需打开OSGi配置并保存它:
Adobe Granite OAuth Authentication Handler
注意 请注意,不要将身份验证处理程序与AdobeGranite OAuth应用程序和提供程序的Facebook或Twitter实例混淆。
AdobeGranite OAuth应用程序和提供程序
Adobe Granite OAuth Authentication Handler
要找到为Facebook或Twitter应用程序创建的实例,请执行以下操作:
对于每个OAuth身份验证处理程序配置,实例中还创建了两个其他配置:
- Apache Jackrabbit Oak默认同步处理程序(org.apache.jackrabbit.oak.spi.security.authentication.external.impl.DefaultSyncHandler) — 无需进行编辑,但您可以查看用户字段映射Facebook字段如何映射到CQ用户配置文件节点。 另请注意,“同步处理程序名称”与OAuth提供程序配置的配置ID匹配。 Apache Jackrabbit Oak外部登录模块(org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalLoginModuleFactory) — 无需进行编辑,但您可能会注意到“身份提供程序名称”和“同步处理程序名称”相同,并分别指向相应的OAuth和同步处理程序配置。
有关更多信息,请参阅使用Apache Oak外部登录模块进行身份验证。
OAuth用户遍历性能
对于社区网站,如果有数十万用户使用Facebook或Twitter登录方式进行注册,则添加以下Oak索引可以提高网站访客使用其社交登录方式时执行查询的遍历性能。
如果日志中出现遍历警告,建议添加此索引。
在创作实例上,使用管理权限登录:
/oak:index
ntBaseLucene
/oak:index
ntBaseLucene-oauth
/oak:index/ntBaseLucene-oauth
oauthid-123​**​**
true
1
oauthid-123​**​**
oauthid-123​**​**
oauthid-123​**​**
oauthid-123
有关其他信息和工具,请参阅Oak查询和索引。
调度程序配置
请参阅为Communities配置Dispatcher。
adobe.com 上的资源 Content Insights Auto Form Fill Asset Collections Content As A Service Version History Content Management System