我正在使用社交连接器模块来集成 Facebook 登录。
您能否让我知道如何将其集成到一个页面中,该页面将在任何用户浏览该站点的任何页面时显示给任何用户,并且一旦他使用其 Facebook 凭据登录,将显示该站点的请求页面。
我正在使用社交连接器模块来集成 Facebook 登录。
您能否让我知道如何将其集成到一个页面中,该页面将在任何用户浏览该站点的任何页面时显示给任何用户,并且一旦他使用其 Facebook 凭据登录,将显示该站点的请求页面。
如果我理解正确,您想确保他们在显示任何内容之前通过 Facebook 登录?
在快速浏览完管理员和开发人员指南后,我认为您应该能够使用 Sitecore Rule
。
您Condition
将在where the current user is connected to the specific social network
其中将“特定”设置为 Facebook。此规则随模块一起提供。您的(自定义)Action
可能类似于“将上下文项设置为特定项”,其中特定项是您的登录页面(请记住,您可能希望排除该页面以运行Rule
以防止无限循环,假设您的登录页面也是在 Sitecore 中)。
剩下的就是启动页面加载规则。要了解 Sitecore 是如何做到这一点的,ConditionalRenderingsRules
您可以使用Reflector,并Evaluate
在Sitecore.Pipelines.InsertRenderings.Processors.EvaluateConditions
.
您也可以通过代码实现这一点:
private void Page_Load(object sender, EventArgs e)
{
string fbId;
if (Request.QueryString["authResult"] != null && IsFacebookLogin(out fbId))
{
var facebookDataItem = Sitecore.Context.Database.GetItem("/sitecore/content/Home/FacebookData");
Response.Redirect(facebookDataItem.Paths.Path.Replace(facebookDataItem.Paths.ParentPath, ""));
}
}
public bool IsFacebookLogin(out string fbId)
{
fbId = string.Empty;
if (!Sitecore.Context.User.IsAuthenticated) return false;
fbId = Sitecore.Context.User.Profile.GetCustomProperty("fb_id");
return !string.IsNullOrEmpty(fbId);
}
在这种情况下,如果用户使用 facebook ID 登录,我将进行重定向。您还可以查看此博客文章,了解有关该模块设置和使用的更多详细信息:Social Connected with Sitecore (Facebook) 1:设置、在内容发布和触发 DMS 目标时发布消息