Интеграция аутентификации пользователей через учетные записи социальных сетей в Web-приложение

Методика интеграции аутентификации на web-сайте через социальные сети. Проектирование интерфейсов основных классов программ, осуществляющих взаимодействие между библиотеками OAuth социальных сетей Facebook и Twitter с использованием шифрования SSL.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 08.01.2014
Размер файла 3,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

public static function urldecode_rfc3986($string) {

return urldecode($string);

}

// Utility function for turning the Authorization: header into

// parameters, has to do some unescaping

// Can filter out any non-oauth parameters if needed (default behaviour)

public static function split_header($header, $only_allow_oauth_parameters = true) {

$pattern = '/(([-_a-z]*)=("([^"]*)"|([^,]*)),?)/';

$offset = 0;

$params = array();

while (preg_match($pattern, $header, $matches, PREG_OFFSET_CAPTURE, $offset) > 0) {

$match = $matches[0];

$header_name = $matches[2][0];

$header_content = (isset($matches[5])) ? $matches[5][0] : $matches[4][0];

if (preg_match('/^oauth_/', $header_name) || !$only_allow_oauth_parameters) {

$params[$header_name] = OAuthUtil::urldecode_rfc3986($header_content);

}

$offset = $match[1] + strlen($match[0]);

}

if (isset($params['realm'])) {

unset($params['realm']);

}

return $params;

}

// helper to try to sort out headers for people who aren't running apache

public static function get_headers() {

if (function_exists('apache_request_headers')) {

// we need this to get the actual Authorization: header

// because apache tends to tell us it doesn't exist

$headers = apache_request_headers();

// sanitize the output of apache_request_headers because

// we always want the keys to be Cased-Like-This and arh()

// returns the headers in the same case as they are in the

// request

$out = array();

foreach( $headers AS $key => $value ) {

$key = str_replace(

" ",

"-",

ucwords(strtolower(str_replace("-", " ", $key)))

);

$out[$key] = $value;

}

} else {

// otherwise we don't have apache and are just going to have to hope

// that $_SERVER actually contains what we need

$out = array();

if( isset($_SERVER['CONTENT_TYPE']) )

$out['Content-Type'] = $_SERVER['CONTENT_TYPE'];

if( isset($_ENV['CONTENT_TYPE']) )

$out['Content-Type'] = $_ENV['CONTENT_TYPE'];

foreach ($_SERVER as $key => $value) {

if (substr($key, 0, 5) == "HTTP_") {

// this is chaos, basically it is just there to capitalize the first

// letter of every word that is not an initial HTTP and strip HTTP

// code from przemek

$key = str_replace(

" ",

"-",

ucwords(strtolower(str_replace("_", " ", substr($key, 5))))

);

$out[$key] = $value;

}

}

}

return $out;

}

// This function takes a input like a=b&a=c&d=e and returns the parsed

// parameters like this

// array('a' => array('b','c'), 'd' => 'e')

public static function parse_parameters( $input ) {

if (!isset($input) || !$input) return array();

$pairs = explode('&', $input);

$parsed_parameters = array();

foreach ($pairs as $pair) {

$split = explode('=', $pair, 2);

$parameter = OAuthUtil::urldecode_rfc3986($split[0]);

$value = isset($split[1]) ? OAuthUtil::urldecode_rfc3986($split[1]) : '';

if (isset($parsed_parameters[$parameter])) {

// We have already recieved parameter(s) with this name, so add to the list

// of parameters with this name

if (is_scalar($parsed_parameters[$parameter])) {

// This is the first duplicate, so transform scalar (string) into an array

// so we can add the duplicates

$parsed_parameters[$parameter] = array($parsed_parameters[$parameter]);

}

$parsed_parameters[$parameter][] = $value;

} else {

$parsed_parameters[$parameter] = $value;

}

}

return $parsed_parameters;

}

public static function build_http_query($params) {

if (!$params) return '';

// Urlencode both keys and values

$keys = OAuthUtil::urlencode_rfc3986(array_keys($params));

$values = OAuthUtil::urlencode_rfc3986(array_values($params));

$params = array_combine($keys, $values);

// Parameters are sorted by name, using lexicographical byte value ordering.

// Ref: Spec: 9.1.1 (1)

uksort($params, 'strcmp');

$pairs = array();

foreach ($params as $parameter => $value) {

if (is_array($value)) {

// If two or more parameters share the same name, they are sorted by their value

// Ref: Spec: 9.1.1 (1)

natsort($value);

foreach ($value as $duplicate_value) {

$pairs[] = $parameter . '=' . $duplicate_value;

}

} else {

$pairs[] = $parameter . '=' . $value;

}

}

// For each parameter, the name is separated from the corresponding value by an '=' character (ASCII code 61)

// Each name-value pair is separated by an '&' character (ASCII code 38)

return implode('&', $pairs);

}

}

?>

Размещено на Allbest.ru


Подобные документы

  • История развития и классификация социальных сетей. Характеристика наиболее популярных социальных сетей. Сети Рунета: ВКонтакте, Одноклассники, Мой круг, Мой мир (на www.mail.ru), RuSpace. Социальная сеть Facebook как лидер среди социальных сетей.

    реферат [4,0 M], добавлен 23.06.2012

  • Изучение понятия социальных сетей. Классификация социальных сетей по тематике и по форме общения их аудитории: общетематические, специализированные, глобальные, мультимедийные, блоги, микроблоги. Facebook - одна из самых популярных социальных сетей.

    презентация [405,6 K], добавлен 05.06.2013

  • Разработка предложений по внедрению биометрической аутентификации пользователей линейной вычислительной сети. Сущность и характеристика статических и динамических методов аутентификации пользователей. Методы устранения угроз, параметры службы защиты.

    курсовая работа [347,3 K], добавлен 25.04.2014

  • Разработка средствами языка PHP и Фреймворка Yii системы регистрации и аутентификации пользователей на сайте. Проектирование приложения с помощью языка UML, построение диаграммы прецедентов. База данных приложения. Страница регистрации пользователей.

    отчет по практике [1,1 M], добавлен 15.09.2014

  • Беспроводная технология передачи информации. Развитие беспроводных локальных сетей. Стандарт безопасности WEP. Процедура WEP-шифрования. Взлом беспроводной сети. Режим скрытого идентификатора сети. Типы и протоколы аутентификации. Взлом беспроводной сети.

    реферат [51,8 K], добавлен 17.12.2010

  • Количество социальных сетей в Интернете и численность их участников. Форумы и блоги как наиболее распространенные формы общения с помощью Web-технологий. Регистрация пользователей, учетные данные, сеанс работы в среде сети. Виды поиска информации.

    реферат [10,0 K], добавлен 13.02.2011

  • Типы социальных сетей, их влияние на современного человека. Тенденции и перспективы развития социальных сетей. Внедрение в повседневную жизнь мобильных интернет-технологий. Анализ социальной сети на примере VK.com - крупнейшей в Рунете социальной сети.

    курсовая работа [48,0 K], добавлен 07.08.2013

  • Использование электронных ключей как средства аутентификации пользователей. Анализ методов идентификации и аутентификации с точки зрения применяемых в них технологий. Установка и настройка средств аутентификации "Rutoken", управление драйверами.

    курсовая работа [4,6 M], добавлен 11.01.2013

  • Анализ системы распределенных локальных сетей и информационного обмена между ними через Интернет. Отличительные черты корпоративной сети, определение проблем информационной безопасности в Интернете. Технология построения виртуальной защищенной сети – VPN.

    курсовая работа [3,7 M], добавлен 02.07.2011

  • Сущность малого предпринимательства. Применение информационных технологий в корпоративной инфраструктуре. Развития социальных сетей в Интернете. Корреляционный анализ зависимости популяризации социальных сетей от интеграции населения в среду Интернет.

    контрольная работа [423,9 K], добавлен 17.04.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.