示例#1
0
文件: deauthorize.php 项目: n8b/VMN
<?php

$provider = get_input('provider');
$guid = get_input('guid');
$user = get_entity($guid);
if (!$provider || !$user) {
    forward('', '404');
}
$session_name = get_input('session_name');
$session_handle = get_input('session_handle');
$ha_session = new Elgg\HybridAuth\Session($user, $session_name, $session_handle);
$ha_provider = $ha_session->getProvider($provider);
if (!$ha_provider) {
    forward('', '404');
}
if ($ha_session->deauthenticate($ha_provider)) {
    system_message(elgg_echo('hybridauth:provider:user:deauthorized'));
} else {
    register_error(elgg_echo('hybridauth:provider:user:deauthorized:error'));
}
forward(REFERER);
<?php

if (!elgg_get_plugin_setting('public_auth', 'elgg_hybridauth')) {
    gatekeeper();
}
$session_owner_guid = get_input('session_owner_guid');
$session_owner = get_entity($session_owner_guid);
$session_name = get_input('session_name');
$session_handle = get_input('session_handle');
$user = $session_owner ?: elgg_get_logged_in_user_entity();
$ha_session = new Elgg\HybridAuth\Session($user, $session_name, $session_handle);
$provider_name = get_input('provider');
$provider = $ha_session->getProvider($provider_name);
if (!$provider) {
    forward(REFERRER, '400');
    // bad request
}
$scope = get_input('scope');
if ($scope) {
    $uid = (int) $ha_session->isAuthenticated($provider);
    if (empty($_SESSION["HA:{$provider_name}:last_scope:{$uid}"])) {
        $_SESSION["HA:{$provider_name}:last_scope:{$uid}"] = 'default';
    }
    if ($_SESSION["HA:{$provider_name}:last_scope:{$uid}"] != $scope) {
        // Check if scope has been explicitly required
        // Logout the user, and reauthenticate with the requested scope
        $config = $ha_session->getConfig();
        if (!empty($config['providers'][$provider_name])) {
            $config['providers'][$provider_name]['scope'] = urldecode($scope);
        }
        $ha_session->setConfig($config);
示例#3
0
文件: start.php 项目: n8b/VMN
/**
 * Add an additional provider to the list of providers the user is authenticated with
 *
 * @param string   $event "login"
 * @param string   $type  "user"
 * @param ElggUser $user  User entity
 * @return boolean
 */
function elgg_hybridauth_aux_provider($event, $type, $user)
{
    $aux_provider = get_input('aux_provider');
    $aux_provider_uid = get_input('aux_provider_uid');
    if ($aux_provider && $aux_provider_uid) {
        $ha_session = new \Elgg\HybridAuth\Session($user);
        $provider = $ha_session->getProvider($aux_provider);
        if ($provider) {
            $ha_session->addAuthRecord($provider, $aux_provider_uid);
            system_message(elgg_echo('hybridauth:link:provider', array($provider->getName())));
        }
    }
    return true;
}