2011-02-04 4 views
1

У меня есть сервер и множество клиентов. аутентификация должна выполняться на сервере. когда пользователь отправляет идентификатор и пароль, которые он отправляет почтовым методом, и сервер аутентифицирует его и отправляет сообщение статусов (valid/notvalid). делая это небезопасно. сначала я, однако, я должен использовать некоторую систему токенов, например, как работает facebook.so, для помощи я разместил здесь некоторый вопрос. Мне было предложено использовать openId, если я хочу следовать системе токенов. я прошел через это, но это очень сложно. Я не требую этого комплекса.система авторизации в php с использованием fsockopen curl

Тогда я, хотя и fsockopen. после отправки формы, она приходит к одной из функций в клиентской системе. FROM этой функции я отправляю и получаю данные.

$url = 'http://www.server.net/auth_system/test'.'/'.$email_id.'/'.$password.'/'.$site_id; 

    $fp = fsockopen($url_parsed['host'],"80",$err_num,$err_str,30); 
    fputs($fp, "POST $url_parsed[path] HTTP/1.1\r\n"); 
    fputs($fp, "Host: $url_parsed[host]\r\n"); 
    fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); 
    fputs($fp, "Content-length: ".strlen($post_string)."\r\n"); 
    fputs($fp, "Connection: close\r\n\r\n"); 
    fputs($fp, $post_string . "\r\n\r\n"); 

на сервере:

$status = Database...($email_id, $password, $site_id);    
        echo "<br>split-delimiter".$email_id."split-delimiter<br>"; 
        echo "split-delimiter".$status."split-delimiter"; 

** пожалуйста скажите мне, что я делаю это правильно ?. это лучший способ? как насчет использования завитка?

ответ

0

В последнее время у меня действительно другое мнение с моим хорошим другом. Он также считает, что openID сложный, и ему нравится делать аутентификацию самостоятельно.

Сложность

Но мой вопрос к вам (и ему) является:

  • что вы находите комплекс о OpenID. Я действительно не вижу этого. Когда вы используете дружественный интерфейс OpenID, я думаю, что это просто/удобно. Посмотрите, как войти в систему. Вам было сложно аутентифицироваться? Я вообще не вижу никакой сложности.

Почему вы не должны делать проверку подлинности

Почему я думаю, что вы не должны делать проверку подлинности:

  • storing your passwords safely is hard и быть честным, я искал много в это последнее время, и я думаю, что криптография чрезвычайно сложно (некоторые части, на которые я просто не могу полностью окунуться). P.S: Я думаю, вы также должны прочитать эту очень интересную статью, объясняющую, как Lifehacker got hacked Джеффом Этвудом (автор Stackoverflow).

Библиотека

Я предпочел бы код Node.js (JavaScript) в последнее время, то PHP, но я создал небольшую library, который использует очень простую LightOpenID библиотеки в сочетании с OpenId-селектором, чтобы сделать его удобным , Вы просто клонируете репозиторий, и вы готовы к работе. Простой, как я, по-моему. Мне нравится делать еще несколько коммитов (я не думаю, что еще много коммитов), также очень легко создать учетную запись OpenID с помощью myopenid.com (например, stackoverflow.com).

Вы можете просмотреть рабочий пример (это простой git-клон, который остается актуальным с github) на моем маленьком веб-хостинге PHP по адресу http://westerveld.name/php-openid/. Это выглядит, как на скриншоте ниже:

enter image description here

P.S: Я до сих пор думаю, что, когда я еще пару совершает библиотека будет в очень хорошем состоянии. По-моему, это уже довольно хорошо.

+0

Вы ошиблись, я упоминаю об осложнении использования openID. использование openID прост. но я имею в виду. создавая такую ​​систему, как openID, как она аутентифицирует идентификатор. как безопасно отправить ответ. – aparna

+0

Но эти сложности скрыты при использовании библиотеки (LightOpenID)? – Alfred

Смежные вопросы