простая авторизация в веб-интерфейсе - PullRequest
0 голосов
/ 26 мая 2010

Я хочу сделать хороший и чистый API; Я делаю сайт и хочу предложить мобильным приложениям возможность использовать веб-API моего сайта.

Я не хочу использовать oAuth, потому что мобильные и встраиваемые приложения сталкиваются с самыми большими препятствиями, поскольку они могут не иметь возможности запускать и / или контролировать веб-браузер. Также это немного усложняет.

Я знаю, что базовая авторизация HTTP небезопасна, но это так просто ... Я хочу использовать ее в своем API. У меня есть логины некоторых пользователей и их пароли (в кодировке md5) в базе mysql, но как использовать эти данные в базовой авторизации HTTP?

Ответы [ 2 ]

1 голос
/ 26 мая 2010

Создайте случайную уникальную строку для каждого пользователя в вашей базе данных и сделайте эту строку доступной для конечных пользователей. Когда они получают доступ к API, попросите их ввести уникальную строку, которую вы указали - это их «ключ». Каждый раз, когда пользовательское приложение обращается к API, они передают ключ, который напрямую связывается с уникальной учетной записью, и именно так вы их авторизуете. По сути, это имя пользователя и пароль в одном.

Хотя приведенный выше пример является общим, вы также должны принимать во внимание такие вещи, как безопасность - например, по возможности, передавать идентификатор устройства с мобильного телефона и использовать его во время аутентификации или использовать текущий хэш пароля во время их ключа API. поколение, поэтому, если они изменят свой пароль, ключ перестанет работать, и им придется получить новый - таким образом, они могут контролировать доступ, если их ключ потерян.

Это не должно быть сложно, это просто должно быть безопасно. =)

0 голосов
/ 26 мая 2010

В руководстве по PHP есть пример
Просто погуглите свой вопрос "PHP HTTP basic", и вот вы здесь
http://php.net/manual/en/features.http-auth.php

это так же просто, как отправка нескольких заголовков HTTP.

Также обратите внимание, что авторизация дайджеста считается более безопасной, но менее совместимой с клиентами.

...