本文整理汇总了PHP中Gdn_AuthenticationProviderModel::GetDefault方法的典型用法代码示例。如果您正苦于以下问题:PHP Gdn_AuthenticationProviderModel::GetDefault方法的具体用法?PHP Gdn_AuthenticationProviderModel::GetDefault怎么用?PHP Gdn_AuthenticationProviderModel::GetDefault使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Gdn_AuthenticationProviderModel
的用法示例。
在下文中一共展示了Gdn_AuthenticationProviderModel::GetDefault方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: CheckOverride
/**
* Check the default provider to see if it overrides one of the entry methods and then redirect.
* @param string $Type One of the following.
* - SignIn
* - Register
* - SignOut (not complete)
*/
public function CheckOverride($Type, $Target, $TransientKey = NULL)
{
if (!$this->Request->Get('override', TRUE)) {
return;
}
$Provider = Gdn_AuthenticationProviderModel::GetDefault();
if (!$Provider) {
return;
}
$this->EventArguments['Target'] = $Target;
$this->EventArguments['DefaultProvider'] =& $Provider;
$this->EventArguments['TransientKey'] = $TransientKey;
$this->FireEvent("Override{$Type}");
$Url = $Provider[$Type . 'Url'];
if ($Url) {
switch ($Type) {
case 'Register':
case 'SignIn':
// When the other page comes back it needs to go through /sso to force a sso check.
$Target = '/sso?target=' . urlencode($Target);
break;
case 'SignOut':
$Cookie = C('Garden.Cookie.Name');
if (strpos($Url, '?') === FALSE) {
$Url .= '?vfcookie=' . urlencode($Cookie);
} else {
$Url .= '&vfcookie=' . urlencode($Cookie);
}
// Check to sign out here.
$SignedOut = !Gdn::Session()->IsValid();
if (!$SignedOut && (Gdn::Session()->ValidateTransientKey($TransientKey) || $this->Form->IsPostBack())) {
Gdn::Session()->End();
$SignedOut = TRUE;
}
// Sign out is a bit of a tricky thing so we configure the way it works.
$SignoutType = C('Garden.SSO.Signout');
switch ($SignoutType) {
case 'redirect-only':
// Just redirect to the url.
break;
case 'post-only':
$this->SetData('Method', 'POST');
break;
case 'post':
// Post to the url after signing out here.
if (!$SignedOut) {
return;
}
$this->SetData('Method', 'POST');
break;
case 'none':
return;
case 'redirect':
default:
if (!$SignedOut) {
return;
}
break;
}
break;
default:
throw new Exception("Unknown entry type {$Type}.");
}
$Url = str_ireplace('{target}', rawurlencode(Url($Target, TRUE)), $Url);
if ($this->DeliveryType() == DELIVERY_TYPE_ALL && strcasecmp($this->Data('Method'), 'POST') != 0) {
redirectUrl($Url, 302);
} else {
$this->SetData('Url', $Url);
$Script = <<<EOT
<script type="text/javascript">
window.location = "{$Url}";
</script>
EOT;
$this->Render('Redirect', 'Utility');
die;
}
}
}
示例2: signInUrl
function signInUrl($target = '', $force = false)
{
// Check to see if there is even a sign in button.
if (!$force && strcasecmp(C('Garden.Registration.Method'), 'Connect') !== 0) {
$defaultProvider = Gdn_AuthenticationProviderModel::GetDefault();
if ($defaultProvider && !val('SignInUrl', $defaultProvider)) {
return '';
}
}
return '/entry/signin' . ($target ? '?Target=' . urlencode($target) : '');
}
示例3: RootController_SSO_Create
/**
* Method for plugins that want a friendly /sso method to hook into.
*
* @param RootController $Sender
* @param string $Target The url to redirect to after sso.
*/
public function RootController_SSO_Create($Sender, $Target = '')
{
if (!$Target) {
$Target = $Sender->Request->Get('redirect');
if (!$Target) {
$Target = '/';
}
}
// TODO: Make sure the target is a safe redirect.
// Get the default authentication provider.
$DefaultProvider = Gdn_AuthenticationProviderModel::GetDefault();
$Sender->EventArguments['Target'] = $Target;
$Sender->EventArguments['DefaultProvider'] = $DefaultProvider;
$Handled = FALSE;
$Sender->EventArguments['Handled'] =& $Handled;
$Sender->FireEvent('SSO');
// If an event handler didn't handle the signin then just redirect to the target.
if (!$Handled) {
Redirect($Target, 302);
}
}