Hi I'm attempting to use a custom visualforce page to login external communities users (customers). I have read the implementation guide this guide and followed all the instructions. But when I enter the credentials for a test user on my VF login page, it takes me to the landing page instead of the homepage. I have also looked at this doc for customizing portal logins but I'm not sure what I'm missing. Below are my customLoginController,CommunitiesLandingController, SiteController, CommunitiesLogin and CommunitiesLanding.
global with sharing class CommunitiesLoginController {
global CommunitiesLoginController () {}
// Code we will invoke on page load.
/**global PageReference forwardToAuthPage() {
String startUrl = System.currentPageReference().getParameters().get('startURL');
String displayType = System.currentPageReference().getParameters().get('display');
return Network.forwardToAuthPage(startUrl, displayType);
}*/
global PageReference forwardToCustomAuthPage() {
String startUrl = System.currentPageReference().getParameters().get('startURL');
return new PageReference(Site.getPrefix() + '/MYCustomerPortalLogin?startURL=' +
EncodingUtil.urlEncode(startURL, 'UTF-8'));
}
}
public with sharing class CommunitiesLandingController {
// Code we will invoke on page load.
public PageReference forwardToStartPage() {
return Network.communitiesLanding();
}
public PageReference forwardToCustomAuthPage() {
String startUrl = System.currentPageReference().getParameters().get('startURL');
return new PageReference(Site.getPrefix() + '/MYCustomerPortalLogin?startURL=' +
EncodingUtil.urlEncode(startURL, 'UTF-8'));
}
public CommunitiesLandingController() {}
}
global with sharing class SiteLoginController {
global String username {get; set;}
global String password {get; set;}
global PageReference login() {
String startUrl = System.currentPageReference().getParameters().get('startURL');
return Site.login(username, password, startUrl);
}
global SiteLoginController () {}
}
<apex:page id="loginPage" controller="CommunitiesLoginController" action=" {!forwardToCustomAuthPage}" title="{!$Label.site.site_login}">
</apex:page>
<apex:page id="communitiesLandingPage" controller="CommunitiesLandingController" action="{!forwardToCustomAuthPage}" title="{!$Label.site.site_login}">
</apex:page>
<apex:page showHeader="false" controller="SiteLoginController"
standardStylesheets="false" sidebar="false">
<head>
<title>Customized Customer Login</title>
<script type='text/javascript'>
function noenter(ev) {
if (window.event && window.event.keyCode == 13 || ev.which == 13) {
javascriptLogin();
return false;
} else {
return true;
}
}
</script>
<style type="text/css">
fieldset.login {
background: none repeat scroll 0 0 white;
border: 1px solid #AAAAAA;
border-radius: 5px 5px 5px 5px;
font-family: "Century Gothic","Lucida Grande",Arial,sans-serif;
margin: 0 0 25px;
padding: 10px;
}
fieldset.login label {
clear: both;
color: #333333;
display: block;
font-size: 12px;
font-weight: bold;
padding-top: 10px;
}
fieldset.login input.text {
border: 1px solid #AAAAAA;
color: #5E5E5E;
float: left;
padding: 5px;
width: 320px;
}
.clear {
clear: both;
}
.content {
margin: 0 auto;
width: 419px;
}
</style>
</head>
<body>
<div class="content">
<div class="login">
<apex:form id="loginForm" forceSSL="true">
<apex:actionFunction name="javascriptLogin" action="{!login}" />
<fieldset class="login">
<b>Customer Login</b>
<apex:pageMessages id="error" />
<apex:outputLabel styleClass="label"
value="{!$Label.site.username}" for="username" />
<apex:inputText styleClass="text" id="username"
value="{!username}" />
<apex:outputLabel styleClass="label"
value="{!$Label.site.password}" for="password" />
<apex:inputSecret styleClass="text" id="password"
value="{!password}" onkeypress="return noenter(event);" />
<div class="clear"></div>
<span class="form-link"> </span>
<div class="clear"></div>
<p>
<apex:commandButton value="Login" styleClass="button"
action="{!login}" id="submitbutton" />
</p>
</fieldset>
</apex:form>
</div>
</div>
</body>
</apex:page>
Thanks.